【发布时间】:2014-07-19 13:04:55
【问题描述】:
我尝试在 EJS 上使用我的局部变量。检查用户是否已连接只是一个变量。 -> 喜欢此链接上的最后一篇文章: How to know if user is logged in with passport.js?
所以,
app.js
app.use(function (req, res, next) {
res.locals.login = req.isAuthenticated();
next();
});
查看 EJS
<% if (login) { %>
<div id="subMenuUser">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
</span>Menu<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#" role="menuitem">Menu Item 1</a></li>
<li><a href="#" role="menuitem">Menu Item 2</a></li>
<li><a href="#" role="menuitem">Menu Item 3</a></li>
</ul>
</div>
</div>
<% } %>
我收到一个错误:
login is not defined
我想在所有视图中使用此变量.. 可能吗?
在此方法之前,我每次在渲染中发送我的变量:
res.render('ad/index', { login: req.session.user });
【问题讨论】:
-
我没有使用过 EJS,但可能是 login = typeof(req.session.use) != 'undefined' 之类的东西? req.session.use : { } 将为您解决问题。
标签: javascript node.js templates ejs