私は複数のモジュールで認証を行っていますが、実際にユーザーを認証しようとしています。Express/Nodeを使用して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)
}
});
私は、ユーザー名に対応するレコードを検索し、その後、err
またはresults
を返し、このMySQLのクエリを持っています。これに
[ RowDataPacket { id: 12, username: 'qqq', password: 'qqq' } ]
:私は、最初の結果を変換するJSON.stringify
を使用しました
[{"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