TypeError: Cannot read property 'username' of undefined in passportjs

TypeError: Cannot read property 'username' of undefined in passportjs

  app.get('/getUser', function(req, res) {

     console.log(req.user.username);

         res.json({'user':req.user.username}); 
    });

当我登录 passportjs 时,这不会 return 任何错误,但是当我未登录时,它显示 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"}); 
                    });

但是它给出了条件语句的错误,我该如何处理错误?

Passport 将用户置于请求对象上。如果没有用Passport进行过认证,那么request对象上就没有user对象。因此,req.user 将是未定义的。正如您可能想象的那样,undefined 没有 属性 命名的用户名,这导致了您的错误。

你可能想要这样的东西:

username = req.user ? req.user.username : "Anonymous"
res.json({'user':username});