Node.js、Express.js、MongoDB を使ってアプリを作っています。私は MVC パターンを使用しており、ルート用に別のファイルもあります。メソッドがその中で宣言された別のメソッドを呼び出すコントローラークラスを作成しようとしています。しかし、私はこれを行うことができないようです。「未定義のプロパティ '' を読み取れません」というメッセージが表示されます。
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();
一方が機能し、もう一方が機能しないのはなぜですか? ヘルプ!