'da ES6'da tanımladığı bir sınıf içinde bir yöntem çağrılamıyor Node.js, Express.js ve MongoDB kullanarak bir uygulama yapıyorum. Bir MVC kalıbı kullanıyorum ve ayrıca rotalar için ayrı bir dosyam var. Bir yöntemin içinde bildirilen başka bir yöntemi çağırdığı bir Denetçi sınıfı oluşturmaya çalışıyorum. Fakat bunu yapamam mümkün görünmüyor. "Tanımlanamayan mülkünü okuyamaz" ı alıyorum. Kendi kendine giden bu kodu yayınlanıyorduysaNode.js
Cannot read property 'callme' of undefined
:
index.js ben hata mesajı aşağıdaki olsun bu çalıştırdığınızda
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();
dosya dosya aşağıdaki gibi küçük bir değişiklik ile ve çalışır.
class ProductController {
constructor(){}
create(){
console.log('Checking if the following logs:');
this.callme();
}
callme(){
console.log('yes');
}
}
let product = new ProductController();
product.create();
Neden biri çalışıyor, diğeri değil? YARDIM!
Bunu [Bir sınıf örneği dışa asla Burada sorunu gösteren basit bir örnek ] (http://stackoverflow.com/a/39079929/1048572). Sınıfı kendiniz dışa aktarın veya yalnızca bir nesneyi kullanın. – Bergi