首页 > 解决方案 > 如何在节点后端正确使用异步数据库操作

问题描述

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

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

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

1.

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

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

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

const isValid = email === "test@test.com'

然后执行User.create(...)

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

2.

让它成为一个承诺或回调链,但代码可读性会很差。

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

标签: node.jsmongodbasynchronousmongoose

解决方案


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


推荐阅读