各位好。在遵循MEAN教程时,当我尝试req.flash('error')
(第二个代码块的中间)
undefined is not a function
错误所以…我的控制器中是否缺少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('/');
}
};
...
包。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"
}
}
已完成的教程项目页面的repo在这里。
你把你的
require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);
之前或之后的
行app.use(flash());
?