我正在开发一个用于身份验证的多模块模块,并且我在实际尝试对用户进行身份验证时遇到困难。使用快速/节点无法从mysql结果中获取值
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查询其查找的用户名对应的记录,然后返回一个err
或results
。我用JSON.stringify
初始转换结果:
[ RowDataPacket { id: 12, username: 'qqq', password: 'qqq' } ]
要这样:
[{"id":12,"username":"qqq","password":"qqq"}]
但results.username
和results.password
机器人是不确定的。所以在我看来,stringyfied结果是一个包含对象的数组。
但是当我做
console.log(results[0].username);
console.log(results[0].password);
他们仍然undefined
。那么如何将用户名/密码存储在变量中?
您是否尝试过使用' for循环遍历所有返回的结果? – Derek
由于某种原因,当我做'console.log(results.length)结果是45,并与一个for循环它计为45. –
看到我的答案在下面,看看是否有帮助 – Derek