我使用的是护照,我需要在布局(使用ejs-locals 'partial')中呈现用户名变量。
app.use(function(req, res, next) {
res.locals =
{
what : 'MyProject',
who : req.user.username
}
next();
});
我认识到'req.user.username'仅在'isAuthenticated'返回true时可用。以下代码可以工作,但是我确定有一种简便的方法,而不是为每条路线编写变量。
app.get('/dashboard',isAuthenticated, function(req, res) {
res.render('template/index', {who:req.user.username});
});
然后,这是我的布局:
<div id="wrapper">
<!-- Navigation -->
<nav style="margin-bottom: 0">
<%- partial('header.ejs') %>
<%- partial('left.ejs') %>
</nav>
<%- body %>
</div>
最后是我的header.ejs
<span style='padding-left:18px'>Hi, <%=who%></span>
答案 0 :(得分:0)
尝试改用<% include header.ejs %>
。
这在ejs中有效,不确定ejs-locals是否相同。在header.ejs中,您应该有权访问who
。值得尝试。