3
默认情况下是否可以始终将某些变量传递给res.render
?始终将变量传递给Express res.render
更具体地说,我正在使用与当前用户填充req.user
的passport
中间件。我需要在我的网站的每个页面上访问它。
这是乏味的,每次提供的 - 如果我忘了,它表现为,如果用户没有登录
默认情况下是否可以始终将某些变量传递给res.render
?始终将变量传递给Express res.render
更具体地说,我正在使用与当前用户填充req.user
的passport
中间件。我需要在我的网站的每个页面上访问它。
这是乏味的,每次提供的 - 如果我忘了,它表现为,如果用户没有登录
简单的解决办法是创建您自己的中间件:
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
将是未定义的。
谢谢!这似乎是一个好主意。 – phillipwei
你能告诉我们一些代码,更好地解释发生了什么问题吗? – Rodmentou