从 index.js 到 node.js 传递变量的语法错误
Syntax Error passing a variable from index.js in node.js
我正在开发一个使用 node.js
和 pug 作为其模板引擎的网络地图站点。我正在尝试将一个变量从 index.js
传递到我的 map.pug
文件,特别是当用户登录该站点时包含 Google 登录信息的用户参数。
index.js
代码片段是:
app.get('/map', (req,res) => {
res.render('map', {
user: req.user,
authenticated: req.isAuthenticated()
});
});
map.pug
片段是:
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 来解决这个问题,但它对语法错误不起作用,所以我对如何解决这个问题有点困惑。
如您所述,问题是由于未通过身份验证时未设置用户变量。 (这会导致页面上呈现的脚本有 user = ; 这是一个语法错误)。如果在快速渲染函数中未定义 req.user,则可以通过设置默认值来解决此问题。
app.get('/map', (req, res) => {
res.render('map', {
authenticated: req.isAuthenticated(),
user: req.user !== undefined ? req.user : {},
})
});
以上将在未定义时将用户设置为空对象
我正在开发一个使用 node.js
和 pug 作为其模板引擎的网络地图站点。我正在尝试将一个变量从 index.js
传递到我的 map.pug
文件,特别是当用户登录该站点时包含 Google 登录信息的用户参数。
index.js
代码片段是:
app.get('/map', (req,res) => {
res.render('map', {
user: req.user,
authenticated: req.isAuthenticated()
});
});
map.pug
片段是:
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 来解决这个问题,但它对语法错误不起作用,所以我对如何解决这个问题有点困惑。
如您所述,问题是由于未通过身份验证时未设置用户变量。 (这会导致页面上呈现的脚本有 user = ; 这是一个语法错误)。如果在快速渲染函数中未定义 req.user,则可以通过设置默认值来解决此问题。
app.get('/map', (req, res) => {
res.render('map', {
authenticated: req.isAuthenticated(),
user: req.user !== undefined ? req.user : {},
})
});
以上将在未定义时将用户设置为空对象