app.get('/getUser', function(req, res) {
console.log(req.user.username);
res.json({'user':req.user.username});
});
当我登录passportjs时,这不会返回任何错误,但是当我没有登录时,它会显示TypeError: Cannot read property 'username' of undefined
错误,我只有在定义时才需要发送res.json,
app.get('/getUser', function(req, res) {
console.log(req.user.username);
if(typeof req.user.username!="undefined")
res.json({'user':req.user.username});
else
res.json({'user':"Anonymous"});
});
但它为条件语句提供了错误,我如何处理错误?
答案 0 :(得分:1)
Passport将用户置于req对象上。如果尚未使用Passport执行身份验证,则请求对象上将没有用户对象。因此,req.user将是未定义的。您可以想象,undefined没有名为username的属性,导致您的错误。
您可能需要以下内容:
username = req.user ? req.user.username : "Anonymous"
res.json({'user':username});