Node.js 如何在节点后端正确使用异步数据库操作

Node.js 如何在节点后端正确使用异步数据库操作,node.js,mongodb,asynchronous,mongoose,Node.js,Mongodb,Asynchronous,Mongoose,假设我们的数据库(mongoDB)中有一个名为User的模型,其中有一个属性email 现在,我们想创建一个createUser函数,该函数将检查电子邮件是否有效,以及数据库中是否没有已使用该电子邮件的用户 我们可以写: (使用猫鼬) 一, 使用async使createUser函数异步,然后等待数据库的结果 const result=wait User.find({email:email}) 在此之后,我们可以进行正常的同步验证,如 const isValid=电子邮件==”test@test.

假设我们的数据库(mongoDB)中有一个名为
User
的模型,其中有一个属性
email

现在,我们想创建一个
createUser
函数,该函数将检查电子邮件是否有效,以及数据库中是否没有已使用该电子邮件的用户

我们可以写: (使用猫鼬)

一,

使用async使createUser函数异步,然后等待数据库的结果

const result=wait User.find({email:email})

在此之后,我们可以进行正常的同步验证,如

const isValid=电子邮件==”test@test.com“

然后执行
User.create(…)

但在执行任何代码之前,它必须等待结果,对吗?(对于后端来说,这不是一个好主意)

二,

让它成为一系列承诺或回调,但代码可读性将非常差


在这种情况下,如果我们想创建一个好的非阻塞后端,那么什么是一个好的选择呢?

async/await基本上是承诺链的语法糖,所以它没有做任何不同的事情。所以在后端就可以了