默认情况下是否可以将某些变量始终传递给res.render
?
更具体地说,我使用的passport
中间件与当前用户一起填充req.user
。我需要在我的网站的每个页面上访问它。
每次提供它都很乏味 - 如果我忘了,似乎用户没有登录。
答案 0 :(得分:4)
一个简单的解决方案是创建自己的中间件:
function userView(req, res, next) {
res.locals.user = req.user;
next();
}
//...
app.use(passport.initialize());
app.use(passport.session());
//...
app.use(userView);
对于每个请求,这会填充一个局部变量user
,然后该变量可供稍后在链中呈现的视图访问。在护照之后激活此中间件,或req.user
未定义。