好先生。
在遵循MEAN教程时,当我尝试undefined is not a function
(第二个代码块的中间)时,我收到req.flash('error')
错误
所以...我的控制器中缺少require
,这会给我express.js
中明确设置的闪光功能吗?
我没有看到控制器中任何地方引用app
,所以我不确定控制器应该如何知道flash
是什么。我理解exports
和require
如何将文件链接在一起,但这似乎并不适用于此,教程中没有任何解释。
express.js
var flash = require('connect-flash');
app.use(flash());
users.server.controller.js
var User = require('mongoose').model('User'),
passport = require('passport');
...
exports.renderRegister = function(req, res, next) {
if (!req.user) {
res.render('register', {
title: 'Register Form',
messages: req.flash('error')
});
}
else {
return res.redirect('/');
}
};
...
package.json 显示我需要安装的所有内容
{
"name": "myMEANapplication",
"version": "1.0.0",
"dependencies": {
"body-parser": "^1.12.4",
"connect-flash": "^0.1.1",
"ejs": "^2.3.1",
"express": "^4.12.4",
"express-session": "^1.11.2",
"gulp": "latest",
"mongoose": "^4.0.3",
"passport": "^0.2.2",
"passport-local": "^1.0.0"
}
}
已完成的教程项目页面的回购是here。
答案 0 :(得分:-1)
你放了你的
O(1)
之前或之后的
行
require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);