用户登录后,我想在标题中显示其用户名,该标题目前是layout.jade
的一部分。他们的详细信息位于req.currentUser
,但无法从布局中访问req
。
我知道我可以为我的路线中的每个render
来电执行以下操作:
res.render('help', {
locals: { currentUser: req.currentUser }
});
但似乎必须有一种更好的方法,就是将{ currentUser: req.currentUser }
添加到locals
我的每一条路线中。
我仍然是Node新手,如果这是一个愚蠢的问题,请道歉。
答案 0 :(得分:8)
您需要使用dynamic helper
。它是一个传递request
和response
对象的函数,就像任何路由或中间件一样,并且可以返回特定于当前请求的数据。 (包括会话数据)
所以,在app.js:
app.dynamicHelpers({
currentUser: function (req, res) {
return req.currentUser;
}
});
并在您的模板中:
<div><%= currentUser %></div>