无法使用Express / Node从mysql结果中获取值

时间:2016-08-16 21:29:31

标签: javascript express

我正在开发一个用于身份验证的复数模块,而且我实际上正试图对用户进行身份验证。

connection.query('SELECT * FROM users WHERE username LIKE ?', [data.username], function (err, results) {
    if (err) throw err;
    var results=(JSON.stringify(results));
    console.log(results);
    console.log(results.password)
    if(results.password === password){
        var user = results;
        // done(null, user);
    } else {
        console.log('else')
        // done('Bad password', null)
    }
});

我有这个mysql查询,它查找与用户名对应的记录,然后返回errresults。我已使用JSON.stringify转换初始结果:

[ RowDataPacket { id: 12, username: 'qqq', password: 'qqq' } ]

对此:

[{"id":12,"username":"qqq","password":"qqq"}]

但是results.usernameresults.password僵尸程序未定义。因此,在我看来,stringyfied结果是一个包含对象的数组。

但是当我做的时候

console.log(results[0].username);
console.log(results[0].password);

他们仍然是undefined。那么如何将用户名/密码存储在变量中?

1 个答案:

答案 0 :(得分:1)

尝试循环遍历结果集,如下所示:

for (var i = results.length - 1; i >= 0; i--) {
    var current = results[i];
    console.log(current);
}

如果一切顺利,您应该能够检查每个变量: current.username等。