【发布时间】:2021-11-11 17:28:43
【问题描述】:
所以我收到了这个错误
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 的问题
【问题讨论】:
-
你应该先通过用户名获取用户。然后您应该将您的密码与用户密码进行比较。 bcyrpt.compare(req.body.password, user.password, function(err, data) => { // 你的回调 })
-
你能告诉我们你想在这里做什么,以便为你写出更好的答案吗?
-
您需要将 2 件事传递给 bcrypt.compare -- 否则您将如何说出您要比较的 2 件事?
-
@douscriptist 你不必指定回调函数——在这种情况下你会得到一个 Promise 回复你一个
await就像@evan_tech1234 正在做的那样。
标签: node.js backend bcrypt mern