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

Javascript 获取对象值时返回未定义的键值,javascript,node.js,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(&qu

在我的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这些值进行记录时,我总是会得到未定义的值。我看过其他的bug,但似乎找不到解释。我做错了什么?

哦,现在我明白了。这是一个猫鼬问题。由于我没有在
联系人
模式中定义
名称
,而是定义
用户名
,猫鼬显然无法解释
对象.key
符号。我已经改变了我的联系方式,现在可以了

让user_temp=JSON.stringify(user)
在他的行前
用户类型给出了什么?我猜是绳子,这就是为什么undefined@aRvi这是一个objecttip:使用
if(err)返回res.send(err)
else
/foo
将因各种错误而中断