gpt4 book ai didi

javascript - Express res.locals 和 pug 未按预期工作

转载 作者:行者123 更新时间:2023-12-02 23:07:01 24 4
gpt4 key购买 nike

我的 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,它是一个对象。当我使用 pug 模板中的 JSON.stringify({currentUser}) 时,它会输出 {}

登录时currentUser返回一个字符串id,注销时currentUser返回一个空对象。两者都传递 if{currentUser} 子句。

谁能帮忙解决这个问题吗?

最佳答案

问题在于您的 if checkin pug 模板:

if {currentUser} 将始终评估为 true。当 currentUser 未定义时,您的 if {currentUser} 会转换为 if({}),其计算结果为 true

这是因为 {} 是一个 truthy 值。当强制 bool 时,其计算结果为true

if ({}) console.log('yes')

console.log(Boolean({}))

将其更改为if currentUser(不带大括号)

关于javascript - Express res.locals 和 pug 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com