使用ASYNC bcrypt.hash函数返回未定义,但可以很好地奏效。
这是带有异步的代码(返回未定义
)
userService.register = (username, password) => {
return bcrypt.hash(password, saltRounds, async(err, hash) => {
const newUser = new user({
username: username,
password: hash
})
return await newUser.save()
})
}
,这是与的代码相同的代码。
userService.register = (username, password) => {
return bcrypt.hash(password, saltRounds)
.then(hash => {
const newUser = new user({
username: username,
password: hash
})
return newUser.save()
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是有记录的行为:
您在第一个示例中传递回调,那么
bcrypt
不会返回承诺。编写代码的另一种方法是使包装函数
async
:This is documented behaviour:
You're passing a callback in your first example, so
bcrypt
doesn't return a promise.Another way to write your code is to make the wrapping function
async
: