express3.0 ejs模板的里面判断变量是否存在报错?
<% if (user) { %> xxx <% } %>
如果没有把这个变量输出在这个模板上,为什么网页上会报 user is not defined
这样写似乎可以,不过太难看了
<% if (typeof user !== ‘undefined’ ) %> xxx <% } %>
我看cnode里面用到了locals.user来判断就可以了,不知道3.0有没有解决办法?
<% if (locals.user) { %> xxx <% } %>
3 回复
还是没明白。望大神指教。
@yiqianke 你的user应该是全局变量(频繁使用的变量),全局变量可以存入 session里,然后
app.use(function(req,res,next){
res.locals.user = req.session ? req.session.user:'';
});
通过这个中间件(注意位置,最好放在最后,具体顺序可以参考我的代码enter link description here)得到locals.user
如果你没用session 如果不嫌麻烦 也可以每次render时加入这个变量