node.js - 如何在节点后端正确使用异步数据库操作
问题描述
假设我们的数据库 (mongoDB) 中有一个模型,User
其中包含一个属性email
。
现在我们想要创建一个createUser
函数来检查电子邮件是否有效,以及我们的数据库中是否已经没有用户使用该电子邮件。
我们可以写:(使用猫鼬)
1.
使 createUser 函数与 async 异步,然后等待数据库的结果
const result = await User.find({email: email})
在此之后,我们可以进行正常的同步验证,例如
const isValid = email === "test@test.com'
然后执行User.create(...)
但它必须等待结果才能执行任何代码,对吗?(对于后端来说不是一个好主意)
2.
让它成为一个承诺或回调链,但代码可读性会很差。
如果我们想创建一个不错的非阻塞后端,在这种情况下有什么好的选择?
解决方案
async/await 基本上是承诺链的语法糖,所以它没有做任何不同的事情。所以在后端它很好。
推荐阅读
- image - 为什么图像不加载 - CodeSandbox
- google-chrome-extension - 使用 chrome 扩展显示 Chrome 错误页面
- java - 当我想 FCM 发送通知时,无法将 java.lang.String 类型的对象转换为类型
- javascript - 变量设置为未定义
- flutter - 调整窗口大小时抽屉未正确关闭
- php - Laravel 迁移显示现有列的列不存在
- ios - 在 UILabel 上点击崩溃 - 使用 UIApplication 共享 keyWindow rootViewController
- json - 我该如何反应(从 Json 获取 axios 并重新排列我的页面)
- aspnetboilerplate - 在 abp v 6.3.0 中扩展本地化源的问题
- python - 有没有办法用for循环打印这样的数字