【发布时间】:2021-01-09 03:22:53
【问题描述】:
我正在使用 bcrypt,我正在尝试使用一个异步函数来散列密码并返回它,但由于它是异步的,除非我使用同步版本(即使它有效,我也不想要它)它返回 [object Promise]并且数据库将其保存为:{} 作为密码。是的,两个括号。我确实使用了await,但它不起作用,而且我对异步函数的理解很差。我在网上找不到任何答案,因为看起来我按照教程做得很好,但我显然不是。
代码如下所示:
function signup(){
var pass = "example";
pass = hashPassword(pass);
console.log(pass); // prints [object Promise] - It's printed first.
//write account with pass to database. Pass is saved as '{}'.
}
async function hashPassword(original_password){
const hashedPass = await bcrypt.hash(original_password, 10);
console.log(hashedPass) // prints the actual hashed pass - It's printed second
return hashedPass; //returns [object Promise]
}
那么我怎样才能让它返回散列密码而不在异步中添加发送到数据库的代码?
【问题讨论】:
-
你必须使用 .然后解决一个承诺。看看这个stackoverflow.com/questions/47469219/…
标签: node.js asynchronous bcrypt