express3.0 ejs模板的里面判断变量是否存在报错?
发布于 12 年前 作者 yiqianke 14176 次浏览 最后一次编辑是 8 年前

<% 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时加入这个变量

回到顶部