【发布时间】:2021-06-30 21:45:00
【问题描述】:
我正在开发一个使用node.js 和pug 作为模板引擎的网络地图站点。我正在尝试将一个变量从index.js 传递到我的map.pug 文件,特别是当用户登录网站时包含Google 登录信息的用户参数。
index.js 代码 sn-p 是:
app.get('/map', (req,res) => {
res.render('map', {
user: req.user,
authenticated: req.isAuthenticated()
});
});
map.pug sn-p 是:
var user
// Find out if the user is logged in & assign to "user" variable if so
if (!{JSON.stringify(authenticated)} == true) {
user = !{JSON.stringify(user)};
} else {
user = 'undefined';
};
console.log(user);
当用户登录时,这可以正常工作,因为它将字典传递给user 变量。当用户未登录时,req.user 是 undefined,因此不会将任何内容传递给 user。
这会导致以下语法错误:
Uncaught SyntaxError: Unexpected token ';'
即使 JSON.stringify 语句在 if 语句中?我尝试使用 try...catch 来解决这个问题,但它不适用于语法错误,所以我对如何解决这个问题有点困惑。
【问题讨论】:
标签: javascript node.js pug web-deployment