我的app.js中具有以下功能,以使用户ID可用于帕格模板。
app.use(function (req, res, next) {
res.locals.currentUser = req.session.userId;
next();
});
登录后,我可以访问该ID。但是,当不登录时,我的帕格模板中的条件无法正常工作。这是我的哈巴狗模板中的代码
if {currentUser}
//do something
else
//do something else.
else
部分不会触发。我已经记录了变量currentUser
,它是一个object
。当我从哈巴狗模板中使用JSON.stringify({currentUser})
时,它会输出{}
登录currentUser
时返回字符串ID,退出currentUser
时返回空对象。两者都通过if{currentUser}
子句。
任何人都可以帮忙吗?
答案 0 :(得分:1)
问题出在您的if
签入哈巴狗模板中:
if {currentUser}
将始终为true。当if {currentUser}
未定义时,您的if({})
转换为currentUser
,其结果为true
这是因为{}
是一个truthy
值。 强制到Boolean
时,其结果为true
。
if ({}) console.log('yes')
console.log(Boolean({}))
将其更改为if currentUser
(不带花括号)