用户定义但user.user_id未定义

时间:2015-08-06 01:33:39

标签: javascript express passport.js

用户是明确定义的,但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, “类型”: “正常”, “电子邮件”: “khockenhull@gmail.com”, “姓名”: “金纳德”, “姓”: “Hockenhull”}`

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

  

未定义

这怎么可能,我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:2)

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

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