我正在ejs网页上的script标签内执行try catch块。
我的服务器有时使用令牌和用户来呈现页面,有时不使用。每次传递变量时,我都会执行var x = <%- JSON.stringify(x) %>;
。这次我这样做了,因为什么都没有传入,所以给了我一个错误。
这不是问题。我遇到的问题是它似乎不起作用!请参见以下代码:
try {
var Token = <%- JSON.stringify(Token) %>;
var User = <%- JSON.stringify(User) %>;
}
catch(err){
console.log("there is no token/user");
}
如果要从服务器的res.render函数传入这些变量,我希望我的代码尝试初始化这些变量。如果没有通过,没问题,那就继续。
答案 0 :(得分:0)
您不能使用try/catch
来检测语法错误。
相反,您可以提供一个默认值,以防未设置变量。
var Token = <%- JSON.stringify(Token || "") %>;
var User = <%- JSON.stringify(User || "") %>;
if (Token == "" || User == "") {
console.log("there is no token/user");
}
答案 1 :(得分:0)
var tokenexist = false;
var userexist = false;
<% if (Token) {
tokenexist = true;
}
if (User) {
userexist = true;
} %>
if (userexist && tokenexist) {
var Token = '<% - JSON.stringify(Token) %>';
var User = '<% - JSON.stringify(User) %>';
} else {
console.log("there is no token/user");
}