我尝试检查 Express 4 中的会话是否存在:
if(req.session.user == undefined) {}
它给了我错误:
Cannot read property 'user' of undefined
如何检查会话中是否存在值?
原文由 Huligan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我尝试检查 Express 4 中的会话是否存在:
if(req.session.user == undefined) {}
它给了我错误:
Cannot read property 'user' of undefined
如何检查会话中是否存在值?
原文由 Huligan 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,它取决于您使用的库,也许某些库具有实用程序,我假设您使用的是 express-session
。
这没关系:
if(req.session.user){}
它们是无用的:
if(typeof req.session.user !== "undefined"){}
if(typeof req.session.user !== "undefined" || req.session.user === true){}
原因: req.session
是一个对象,就像普通对象一样:
var obj = { name : "adam" }
如果你试图获取它不存在和定义的 obj.age ,对象的 getter函数,首先检查它是否存在,如果不存在,它不会产生 致命错误,而是分配该属性到 未定义 的值。
这很酷,所以 obj.age
未定义(JS 有 undefined
作为值类型),此外 undefined
false,所以它是假的),这意味着你可以简单地在这样的条件语句中检查它: if(obj.age){}
原文由 Mehdi Raash 发布,翻译遵循 CC BY-SA 3.0 许可协议
5 回答4.9k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答2k 阅读
3 回答2k 阅读
1 回答3.3k 阅读
1 回答2.7k 阅读
从 来源: