用户定义但 user.user_id 未定义

User defined but user.user_id undefined

User 已明确定义,但 user.user_id 未定义。我正在使用 express.js 和 passport.js

router.post('/requestSale', function(req,res){
    console.log('session user: ' +  req.session.passport.user); //logs 
    console.log('session user_id: ' + req.session.passport.user.user_id);
    api.initiateSale(req.body.brokerId, req.session.passport.user.user_id, (req.body.amount).toFixed(0), function(sale){
        res.render('buying', {title: 'Buying', sale:sale});
    });    
});

console.log('session user: ' + req.session.passport.user); 日志:

{"user_id":3,"type":"Normal","email":"khockenhull@gmail.com","firstname":"Kinnard","lastname":"Hockenhull"}`

但是 console.log('session user_id: ' + req.session.passport.user.user_id); 日志:

undefined

这怎么可能,我该如何解决?

req.session.passport.user 似乎是 JSON 字符串而不是 JavaScript 对象。由于字符串对象没有 user_id 属性 它 returns undefined。使用 JSON.parse 方法解析 JSON 然后读取 属性.

JSON.parse(req.session.passport.user).user_id;