Nodejs:未定义变量如何计算为true?

时间:2017-06-15 21:27:52

标签: javascript node.js nodes

我已经搜索过这个并且没有任何结果。我必须做错事,但无法解决问题。我有以下代码:

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?

感谢。

2 个答案:

答案 0 :(得分:2)

令牌设置为' undefined',一个字符串。也许当您保存cookie时,该值未定义

答案 1 :(得分:1)

除了其他人都说undefined是字符串,这意味着你需要修复令牌的存储,所以它不存在未定义的字符串(不存储它)

您还需要在if语句中进行不必要的检查。你可以摆脱typeof token!=='undefined',好像(令牌)会处理那种情况。