如何在db.get之外获取node-sqlite3查询的结果?

时间:2018-03-14 19:10:54

标签: javascript node.js

我试图检查我的sqlite数据库中的sha256哈希是否与用户发送到我的NodeJS服务器的密码的sha256哈希相匹配。 Auth()函数应该返回true或false。如何访问变量" refpw"在if语句中?



function Auth(username, password){
  db.get("SELECT passwordsha256 FROM users WHERE username=?", username, (err, row) => {
    var refpw = row.passwordsha256
  })
  if(sha256(password) === refpw){return true}else{return false}
}




1 个答案:

答案 0 :(得分:1)

您要做的是将异步方法更改为同步方法。

我建议将回调函数传递给您的Auth方法,然后在调用Auth方法的地方传递回调函数。

function Auth(username, password, callback){


  db.get("SELECT passwordsha256 FROM users WHERE username=?", username, (err, row) => {
    var refpw = row.passwordsha256;
    callback(sha256(password) === refpw);
  })

}

然后像这样打电话给Auth

Auth(username, password, (success) => {
  if (success) {
    //do something here
  }
});