node版本6.9.2 npm 3.10.9 express ~4.14.0
1.”user is not defined”
解决:引用时改成<% if (!locals.user) { %>好用了
success error 同理
2. “title is not defined”
解决:layout 里用locals.title
3.在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误 解决:新版本的Express已经不支持dynamicHelpers方法了。可以用locals来替代
原来代码:
app.dynamicHelpers({
user: function(req, res) {
return req.session.user;
},
error: function(req, res) {
var err = req.flash('error');
if (err.length)
return err;
else
return null;
},
success: function(req, res) {
var succ = req.flash('success');
if (succ.length)
return succ;
else
return null;
}
});
用locals方法替换为:
app.use(function(req,res,next){
res.locals.user=req.session.user;
var err = req.flash('error');
var success = req.flash('success');
res.locals.error = err.length ? err : null;
res.locals.success = success.length ? success : null;
next();
});