में परिभाषित किया है। मैं Node.js, Express.js और MongoDB का उपयोग करके एक ऐप बना रहा हूं। मैं एक एमवीसी पैटर्न का उपयोग कर रहा हूं और मार्गों के लिए अलग फ़ाइल भी है। मैं एक नियंत्रक वर्ग बनाने की कोशिश कर रहा हूं, जिसमें एक विधि इसके भीतर घोषित एक और विधि कहती है। लेकिन मैं ऐसा करने में सक्षम नहीं लग सकता। मुझे अपरिभाषित "संपत्ति नहीं पढ़ी जा सकती"।किसी क्लास के भीतर एक विधि को कॉल नहीं कर सकता जिसे उसने ES6 में Node.js
index.js फ़ाइल
let express = require('express');
let app = express();
let productController = require('../controllers/ProductController');
app.post('/product', productController.create);
http.createServer(app).listen('3000');
ProductController.js फ़ाइल
class ProductController {
constructor(){}
create(){
console.log('Checking if the following logs:');
this.callme();
}
callme(){
console.log('yes');
}
}
module.exports = new ProductController();
जब मैं इस चलाने मैं त्रुटि संदेश निम्नलिखित हो:
Cannot read property 'callme' of undefined
मैं अपने आप में इस कोड को भाग गया है निम्नलिखित के रूप में थोड़ा संशोधन के साथ और यह काम करता है।
class ProductController {
constructor(){}
create(){
console.log('Checking if the following logs:');
this.callme();
}
callme(){
console.log('yes');
}
}
let product = new ProductController();
product.create();
कोई काम क्यों करता है और दूसरा नहीं? सहायता!
आप [एक वर्ग उदाहरण निर्यात कभी नहीं करना चाहिए यहाँ एक सरल उदाहरण समस्या का प्रदर्शन है ] (http://stackoverflow.com/a/39079929/1048572)। या तो कक्षा को स्वयं निर्यात करें, या केवल एक वस्तु का उपयोग करें। – Bergi