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没有定义的原因