こんにちはみんな私はアプリケーションのレイアウトに小さな問題があります。コントローラーをこのように設定しています。
ApplicationController = function(_app) {
this.app = _app;
console.log(this.app); //this works
};
ApplicationController.prototype.index = function(req, res, next) {
console.log(this.app); //this is undefined
res.json("hello");
};
module.exports = function(app) {
return new ApplicationController(app);
};
そして私のルートファイルで私はこれをやっています。
module.exports = function(app) {
//require controllers
var Application = require('./controllers/ApplicationController')(app);
//define routes
app.get('/', Application.index);
app.get('/blah', Application.blah);
return app;
};
渡したアプリ変数が他のインスタンスメソッドに表示されません。私が行方不明になっている理由はありますか?助けてくれてありがとう。
以前は、コントローラーをこのように設定していました。
module.exports = function(app) {
var controller = {
//app is defined
res.render('index', {
title: "Index"
});
}
};
return controller;
};
しかし、私はこの他のパターンがもっと好きで、なぜそれが機能しないのかということよりも興味があります。