bcrypt 与 nodejs 比较

bcrypt compare with nodejs

所以我收到了这个错误 Error: Illegal arguments: string, undefined 这是代码

    router.post('/loguser', async (req, res) => {
        const compareHashed = await bcrypt.compare(req.body.password)
        const user = await User.findOne({
            username: req.body.username,
            password: compareHashed
        })
        if (user) {
            console.log('user is found')
        }
        if (!user) {
            console.log('user is not found')
        }
    })

有谁知道如何解决这个问题,我知道这是 bcrypt 的问题

嗨,兄弟,首先我们对密码进行哈希处理并将其存储在数据库中

从数据库中检索哈希密码并将其与实际密码进行比较

例如:如果我们尝试使用电子邮件和密码登录

    User.find({email:req.body.email}).exec().then(result=>{

  if(result.length < 1){
    console.log('email not found')
  }else{
    bcrypt.compare(req.body.password,result[0].password,(err,result)=>{
      if(err){
        console.log('password not match')
      }
      if(result){
        console.log('password match')
      }
    })
  }
})