当我在console.log用户时它返回用户,但是当我在console.log user.password时它返回undefined。
还有其他方法可以获取密码吗?
connection.query("SELECT * FROM users WHERE email = 'email@email.com'", function(err, user) {
if (err) throw err;
console.log(user) //returns the user
console.log(user.password); //returns undefined
});
答案 0 :(得分:1)
首先,您需要检查该用户是否不等于null
if(!user){
console.log('No Users');
}
然后检查结果是否是对象数组或单个对象 如果它是单个对象,你的代码应该可以正常工作 另外,你需要循环使用元素
for(let el in user){
console.log(el); //This should print each user
}
或者只需首先访问任何元素,然后您需要通过索引检查所需的用户
console.log(user[indexNumber].password);
答案 1 :(得分:1)
您可以使用用户[0] .password 代替 user.password ,并将用户电子邮件传递给语句并设置限制,以便在检索一条记录时快速执行。假设您从表单中传递电子邮件,以便 req.body.email
connection.query('select * from users where user_email=? limit 1',[req.body.email],function (error,user,fields) {
if(error) {
res.send(error);
} else {
console.log("your email is "+user[0].user_email+ "and pass "+user[0].user_password);
}
}