大家好,我在应用程序布局方面遇到了一个小问题。我正在像这样设置我的控制器。
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;
};
我传递的 app 变量没有出现在其他实例方法中。我失踪有什么原因吗?谢谢你的帮助。
在过去,我已经像这样设置了我的控制器。
module.exports = function(app) {
var controller = {
//app is defined
res.render('index', {
title: "Index"
});
}
};
return controller;
};
但我更喜欢这种另一种模式,而且我更好奇为什么它不起作用。