2015-08-06 1 views
0

Пользователь определенно определен, но user.user_id нет. Я использую express.js и passport.jsПользователь, но user.user_id undefined

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 .com», "Имя": "Kinnard", "фамилия": "Hockenhull"}`

Но console.log('session user_id: ' + req.session.passport.user.user_id); журналы:

undefined

Как это возможно и что я могу сделать, чтобы исправить это?

ответ

2

req.session.passport.user похоже, что строка JSON не является объектом JavaScript. Поскольку объект string не имеет свойства user_id, он возвращает undefined. Разберите JSON, используя метод JSON.parse, затем прочитайте свойство.

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

Это сработало. Как вы узнали, что req.session.passport.user является строкой JSON? –

+0

Зарегистрированное значение было действительным JSON, и свойство возвращало 'undefined'. Это означает, что у вас должна быть строка. В этом случае нет другой логической причины наличия значения «undefined». – undefined

Смежные вопросы