【问题标题】:Why am I getting an "undefined" when I try to show a value from object? [duplicate]当我尝试显示对象的值时,为什么会出现“未定义”? [复制]
【发布时间】:2020-09-01 21:43:19
【问题描述】:

为什么我会收到未定义的错误?

user.findAll({
     where: { email: req.body.email },
     raw: true
})
.then(function (resUser) {
     console.log(resUser.name)
})

我正在尝试显示名称:

[
  {
    id: 1,
    name: 'user',
    email: 'user@outlook.com',
    createdAt: 2020-08-27T22:52:39.059Z,
    updatedAt: 2020-09-01T21:33:27.458Z,
  }
]

谢谢

【问题讨论】:

  • 这是一个包含所有匹配记录的数组,它本身不是记录(请注意输出中的[ ])。也许你想要findOne 而不是findAll
  • console.log(resUser[0].name(ti 是 findAll 方法预期的数组)
  • @user3791775 是的,但是首先获取所有匹配的记录然后只访问第一个记录是没有用的,你不觉得吗?
  • @CherryDT 但这就是 resUser.name 未定义的原因

标签: javascript node.js express sequelize.js


【解决方案1】:

您使用 findAll 返回一组找到的对象,因此您应该获得 resUser[0] 或者如果您确定始终只获得一条记录,那么您可以使用 findOne 并且您将获得一个对象或null 如果没有找到记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2021-08-16
    相关资源
    最近更新 更多