不存在"/>
对象属性未定义/不存在
我遇到了客户电子邮件输入与 mySQL 数据库匹配的问题,稍后我会比较数据库中的密码,但是,它不起作用。我找不到解决方案
运行查询返回 1 个匹配对象,输出值,然而,object.property 返回未定义,因此,我假设该对象没有任何属性。我需要能够根据需要访问对象键。
`router.post('/login', async function (req, res) {
const userData = req.body;
const enteredEmail = userData.email;
const enteredPassword = userData.password;
const [existingUser] = await db.query(`SELECT * FROM users WHERE email = ?`, [enteredEmail,]);
console.log(Object.keys(existingUser).length);
console.log(typeof existingUser);
console.log(existingUser);
const check = existingUser.hasOwnProperty('email');
console.log(check);
console.log(existingUser.email);
I get
1
object
[
{
email: '[email protected]',
password: '$2a$10$yK8Pvrc2BzIXKez2X5XOYuS1IInyAs/uugOSke4HWNWPVzSzfavta'
}
]
false
undefined
`
回答如下:
你有一个对象数组,你必须通过它们的索引访问这些元素(如果数组中只有一个元素则为 0)
此代码将始终返回 false
const check = existingUser.hasOwnProperty('email');
并且此代码将始终未定义
console.log(existingUser.email);
所以你的代码应该是这样的
const userData = req.body;
const enteredEmail = userData.email;
const enteredPassword = userData.password;
const [existingUser] = await db.query(`SELECT * FROM users WHERE email = ?`, [enteredEmail,]);
console.log(Object.keys(existingUser).length);
console.log(typeof existingUser);
console.log(existingUser);
const check = existingUser[0].hasOwnProperty('email');//index 0
console.log(check);
console.log(existingUser[0].email);//access email key of the 1st element in your array
输出
1
"object"
[
{
email: '[email protected]',
password: '$2a$10$yK8Pvrc2BzIXKez2X5XOYuS1IInyAs/uugOSke4HWNWPVzSzfavta'
}
]
true
"[email protected]"
更多推荐
对象属性未定义/不存在
发布评论