node mysql返回undefined而不是密码

时间:2017-01-02 00:26:21

标签: mysql node.js

当我在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
});

2 个答案:

答案 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);
    }
}