gpt4 book ai didi

javascript - 无法读取 Query._callback Node.js 中未定义的属性 'password'

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:48 24 4
gpt4 key购买 nike

在实现护照并为其后端工作时,我收到了此错误。谁能帮我弄清楚如何解决它?

TypeError: Cannot read property 'password' of undefined at Query._callback (/Users/oscarstein/Documents/Programering/express-cc/app.js:76:32)

使用以下代码:

passport.use(new LocalStrategy(
function(username, password, done) {
console.log(username);
console.log(password);
const db = require('./db');

db.query('SELECT id, password FROM users WHERE username = ?', [username], function(err, results, fields){
if (err) {done(err)};

if (results.length == 0) {
done(null, false);
}

const hash = results[0].password.toString();

bcrypt.compare(password, hash, function(err, response){
if (response == true) {
return done(null, {user_id: results[0].id});
} else {
return done(null, false);
}

});
})

}
));

最佳答案

考虑这些代码行

if (err) {done(err)};

if (results.length == 0) {
done(null, false);
}

它检查是否存在错误,然后执行函数 done(err) 并且函数流程继续。

然后检查是否有结果,调用函数done(null, false),流程再次继续。

正确的做法是

if (err) {
return done(err)
}

if (results.length == 0) {
return done(null, false);
}

注意上面的return语句。它会中断此回调函数内部的进一步代码执行。

关于javascript - 无法读取 Query._callback Node.js 中未定义的属性 'password',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com