function validateLogin(username,passwordPlaintext) {
db.collection('users').findOne({"username": username}, (function(err, user) {
return bcrypt.compareSync(passwordPlaintext, user.passwordHash);
});
}
这是我目前的代码。它接收用户名和明文密码,然后散列密码并将其与数据库进行比较。使用console.log,我已经验证了一切正常,但我无法弄清楚如何返回bcrypt从validateLogin()生成的布尔值。
答案 0 :(得分:4)
你应该传递"回调"当validateLogin
准备好返回结果时要调用的函数。节点中的常见模式是,回调的第一个参数是错误(如果发生了一个),第二个参数是结果:
function validateLogin(username,passwordPlaintext,callback) {
db.collection('users').findOne({"username": username}, (function(err, user) {
if( err ) {
return callback( err );
}
return callback( null, bcrypt.compareSync(passwordPlaintext, user.passwordHash ) );
});
}