Javascript 为什么我会得到一个;“未定义”;当我尝试显示来自对象的值时?

Javascript 为什么我会得到一个;“未定义”;当我尝试显示来自对象的值时?,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,为什么我得到一个未定义的错误 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-2

为什么我得到一个未定义的错误

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,
  }
]

谢谢

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

您使用
findAll
返回找到的对象数组,这样您就可以得到
resUser[0]
或者如果您确定总是只得到一条记录,那么您可以使用
findOne
,如果没有找到记录,您将得到一个对象或
null

它是一个包含所有匹配记录的数组,而不是记录本身(请注意输出中的
[]
)。也许您想要
findOne
而不是
findAll
?console.log(resUser[0].name)(ti是一个数组,它是findAll方法所期望的)@user3791775是的,但是首先获取所有匹配的记录,然后只访问第一个记录,这是非常无用的,你不这样认为吗?@CherryDT但这就是resUser.name未定义的原因。这是一个包含所有匹配记录的数组,它本身不是一个记录(请注意输出中的
[]
)。可能您希望使用
findOne
而不是
findAll
?console.log(resUser[0].name)(ti是一个数组,该数组应来自findAll方法)@user3791775是的,但是首先获取所有匹配的记录,然后只访问第一个记录,这是非常无用的,你不这么认为吗?@CherryDT但这就是为什么resUser.name没有定义的原因