有没有办法检查req.user.premium
是否属实,而无需检查req.user
是否存在,或者是否有办法将其简化为一行?
我已经尝试过检查req.user.premium
,但如果req.user
为空则会因为req.user
为undefined
而引发错误,{{1}也是如此}}
req.user && req.user.premium
答案 0 :(得分:2)
一行,(假设你还是console.log一个空的val):
console.log((req.user && req.user.premium) ? 'Is premium' : '');
OR 2行(1个语句行):
if(req.user && req.user.premium)
console.log("is premium");
修改强>
假设您的req对象未定义...请执行以下操作:
一行,(假设你还是console.log一个空的val):
console.log((req && req.user && req.user.premium) ? 'Is premium' : '');
OR 2行(1个语句行):
if(req && req.user && req.user.premium)
console.log("is premium");
如果第一个条件(req)未定义,则不会评估第二个和第三个条件 - AKA:Short-Circutiing)
答案 1 :(得分:1)
if(req.user && req.user.premium){
console.log('Is premium');
}
这就像它得到的一样简单
你也可以这样做:
var premium = false;
try{
premium = req.user.premium;
}
catch(err){
}