2015-11-25 101 views
3

默认情况下是否可以始终将某些变量传递给res.render始终将变量传递给Express res.render

更具体地说,我正在使用与当前用户填充req.userpassport中间件。我需要在我的网站的每个页面上访问它。

这是乏味的,每次提供的 - 如果我忘了,它表现为,如果用户没有登录

+0

你能告诉我们一些代码,更好地解释发生了什么问题吗? – Rodmentou

回答

3

简单的解决办法是创建您自己的中间件:

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将是未定义的。

+0

谢谢!这似乎是一个好主意。 – phillipwei