首页 > 解决方案 > 获取对象值时获取未定义的键值返回

问题描述

在我的 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 之前或之后控制台记录这些值时,我总是不确定。我查看了其他错误,但似乎找不到解释。我究竟做错了什么?

标签: javascriptnode.js

解决方案


哦,现在我明白了。这是一个猫鼬问题。由于我没有nameContact模式中定义而是username,猫鼬显然无法解释Object.key符号。我已经更改了我的联系人模型方案,现在它可以工作了!


推荐阅读