Node.js bcrypt和async中的问题

Node.js bcrypt和async中的问题,node.js,lambda,bcrypt,Node.js,Lambda,Bcrypt,我正在尝试编写一个创建用户表单。在我的lambda函数中。我想试试bcrypt是否有效,因此我添加了如下内容: ... const bcrypt = require('bcryptjs') ... exports.handler = async (event, error, callback) => { const email = event.email ? event.email : '' const username = event.username ? event.usern

我正在尝试编写一个创建用户表单。在我的lambda函数中。我想试试bcrypt是否有效,因此我添加了如下内容:

...
const bcrypt = require('bcryptjs')
...
exports.handler = async (event, error, callback) => {
  const email = event.email ? event.email : ''
  const username = event.username ? event.username : ''
  const password = event.password ? event.password : '' // in this example,I use '123123' as a test password
  const timestamp = new Date().getTime().toString()
  ...
  const saltRounds = 10
  const passwordhash = await bcrypt.hashSync(password, saltRounds)
  console.log('passwordhash' , passwordhash)
  const compareResult = await bcrypt.compareSync(passwordhash , password)
  console.log('compateresult' ,compareResult )

但是我不知道为什么会有这样的结果。它总是返回false。 我读了一些其他的问题,也有同样的问题,它说我应该使用等待,让它运行。然而,我仍然无法修复它。有人能解释一下bcrypt.hashSync和bcrypt.compareSync是如何运行的吗?

根据,密码是
compareSync
的第一个参数。如果我更改代码中的参数顺序,它将按预期工作

const compareResult=wait bcrypt.compareSync(密码、密码哈希)
您还可以删除
wait
compareSync
hashSync
都是同步方法。

基于,密码是
compareSync
的第一个参数。如果我更改代码中的参数顺序,它将按预期工作

const compareResult=wait bcrypt.compareSync(密码、密码哈希)

您还可以删除
wait
compareSync
hashSync
都是同步方法。

是的……我还发现我刚刚犯了一个愚蠢的错误,花了我一个小时……是的……我还发现我刚刚犯了一个愚蠢的错误,花了我一个小时。。。