获取对象值时获取未定义的键值返回

时间:2020-09-10 17:42:34

标签: javascript node.js

在我的nodejs项目中,我正在从MongoDB中获取数据,并在查询以下代码后进行检索:

app.get('/:user_id', (req, res) => {
  Contact.findById(req.params.user_id, function (err, user) {
    if (err){
        res.send(err);
    }
    let user_temp = JSON.stringify(user)
    console.log("1 - ", user);
    console.log("2 - ", user.name);
    console.log("3 - ", user_temp)
    console.log("4 - ", user_temp.phone);
    res.render('userInfo', {user: user})
  });  
}) 

我得到的日志是这个

1 -  {
  _id: 5f56a47d5a246e5ff8b67129,
  name: 'UserA',
  phone: '054523423',
  __v: 0
}
2 -  undefined
3 -  {"_id":"5f56a47d5a246e5ff8b67129","name":"UserA","phone":"054523423","__v":0}
4 -  undefined

当我尝试在JSON.stringify之前或之后console.log这些值时,我总是无法定义。我看过其他错误,但似乎找不到解释。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

哦,我明白了。这是猫鼬的问题。由于我不是在name模式中定义Contact,而是在username中定义,因此猫鼬显然无法解释Object.key表示法。我已经更改了联系人模型Scheme,现在可以使用了!