首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在db.get之外获得node-sqlite3查询的结果?

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

Stack Overflow用户
提问于 2018-03-15 03:10:54
回答 1查看 162关注 0票数 0

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

代码语言:javascript
复制
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}
}

EN

回答 1

Stack Overflow用户

发布于 2018-03-15 03:37:27

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

我建议在Auth方法中传入一个回调,然后在任何时候调用Auth方法时,都会传入一个回调函数。

代码语言:javascript
复制
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

代码语言:javascript
复制
Auth(username, password, (success) => {
  if (success) {
    //do something here
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49285938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档