我已经搜索过这个并且没有任何结果。我必须做错事,但无法解决问题。我有以下代码:
var token = req.cookies.token;
// decode token
if (typeof token !== 'undefined' && token && token.trim()) {
// if everything is good, save to request for use in other routes
req.token = token;
console.log("Token found");
console.log("Token:" + token);
next();
}
运行时,我得到以下输出:
0|app | Token found
0|app | Token:undefined
即。 token计算结果为true,但是当我尝试将其写入控制台时,它是未定义的。我的问题是,如果令牌未定义,if语句如何评估为true?
感谢。
答案 0 :(得分:2)
令牌设置为' undefined',一个字符串。也许当您保存cookie时,该值未定义
答案 1 :(得分:1)
除了其他人都说undefined是字符串,这意味着你需要修复令牌的存储,所以它不存在未定义的字符串(不存储它)
您还需要在if语句中进行不必要的检查。你可以摆脱typeof token!=='undefined',好像(令牌)会处理那种情况。