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

标签 javascript node.js

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

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}
}

最佳答案

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

我建议向您的 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
  }
});

关于javascript - 如何在 db.get 之外获取 node-sqlite3 查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49285938/

相关文章:

javascript - Express.js 和 Angular.js html5mode(避免 url 中的 #)

javascript - Chrome 和 Firefox 的 clientWidth 区别?

javascript - 使用ajax(jQuery mobile)用php刷新文本文件

node.js - nodejs中的子域

node.js - 节俭 js :node - Cannot use reserved language keyword: "not"

javascript - Node.js 无法使用 JSON 数据读取未定义的属性

javascript - 如何适应不同表格的 td 宽度?

javascript - 我不知道我错过了什么,代码 100% 工作,除了一个选项

javascript - 仅停止一个下拉切换关闭点击

javascript - 从 id 获取与 NodeJS 中的 mongoose 匹配的对象子数组的父对象