【问题标题】:A property on an object has data assigned to it, but returns undefied when it tries to access that property对象上的属性具有分配给它的数据,但在尝试访问该属性时返回 undefined
【发布时间】:2021-12-26 17:22:17
【问题描述】:
[
  {
    _id: 610be2c,
    msg: { text: 'sdsdsdsdsd' },
    sender: '600333',
    receiver: 5fea6e,
  },
  {
    _id: 610be2d,
    msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' },
    sender: '6003123',
    receiver: 608ffae,
  }
] 


Message.find({}, function(err, users) {
        
 
        if (users) {
            users.forEach(function(user) {
                console.log(`${user.receiver}`, 'receiver');
        });
});

user.receiver 在 console.log 中的结果:

undefined receiver
undefined receiver

我尝试了user._id, user.sender,一切正常。 对于user.receiver,它返回 undefined,尽管当我从数据库中获取上述两个对象时,我可以看到两个对象,并且对于receiver 属性,附加了数据。 我尝试使用user.receiver.toString(),但出现错误: Cannot read property 'toString' of undefined

【问题讨论】:

  • 难道 _id 和接收者的值也必须是字符串:例如 receiver: '5fea6e'?
  • @Andy _Id 由 mongodb 数据库自动添加。 “接收者”应该是一个字符串

标签: javascript mongodb


【解决方案1】:

这是因为receiver 的值不是字符串,而是608ffae,JS 将其读取为变量(可能不是这种情况),因为它没有定义或声明它返回undefined

更新:



[
  {
    _id: 610be2c,
    msg: { text: 'sdsdsdsdsd' },
    sender: '600333',
    receiver: '5fea6e',
  },
  {
    _id: 610be2d,
    msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' },
    sender: '6003123',
    receiver: '608ffae',
  }
] 

【讨论】:

    【解决方案2】:

    更新到这个:

    [
      {
        _id: 610be2c,
        msg: { text: 'sdsdsdsdsd' },
        sender: '600333',
        receiver: '5fea6e',
      },
      {
        _id: 610be2d,
        msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' },
        sender: '6003123',
        receiver: '608ffae',
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      相关资源
      最近更新 更多