Node.js、Express.js、およびMongoDBを使用してアプリケーションを作成しています。 私はMVCパターンを使用しており、ルート用に別々のファイルも持っています。 私はControllerクラスを作成しようとしています。Controllerクラス内で宣言された別のメソッドがメソッドから呼び出されています。しかし、私はこれを行うことができないようです。私は "未定義の"プロパティを読むことができません "を取得します。私は自分自身でこのコードを実行しているNode.jsのES6で定義したクラス内のメソッドを呼び出せません
Cannot read property 'callme' of undefined
:
index.jsは、私がこれを実行すると、私は、次のエラーメッセージが表示されます
class ProductController {
constructor(){}
create(){
console.log('Checking if the following logs:');
this.callme();
}
callme(){
console.log('yes');
}
}
module.exports = new ProductController();
ファイル
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');
}
}
let product = new ProductController();
product.create();
なぜ、1つはうまくいくのですか? HELP!
をあなたは[クラスのインスタンスをエクスポートすることはありません](http://stackoverflow.com/a/39079929/1048572)。クラス自体をエクスポートするか、オブジェクトのみを使用します。 – Bergi