查询数据库和请求端点有啥区别?

Posted

技术标签:

【中文标题】查询数据库和请求端点有啥区别?【英文标题】:What is the difference between querying a database and requesting an endpoint?查询数据库和请求端点有什么区别? 【发布时间】:2021-06-23 03:21:46 【问题描述】:

最近我正在尝试学习猫鼬,但我遇到了一个代码,这让我很困惑。

为什么我们在查询数据库时在回调函数的开头写 async 关键字?是不是因为回调函数就已经异步了?

router.get('/', async (req, res) => 
try 
    const subscriber = await Subscriber.find()
 catch (error) 
    res.status(500).json(msg: error.message)
)

即使是这样做的方式,我们为什么不也遵循相同的模式,在这个基本的路由处理中将 async 关键字放在回调函数的开头?

router.get('/', (req, res) => res.send('Hello from homepage'))

【问题讨论】:

【参考方案1】:

你必须在回调的开头写async关键字,因为里面有await关键字。 Async/await 是一项功能,可让您将同步函数转换为异步函数(不仅 javascript 有这种结构,其他编程语言也有)。 Async/await 是 Promise 之上的语法糖,使异步代码更易于编写和阅读。你可以找到详尽的解释here。

【讨论】:

没关系,但我不明白为什么我们不对第二个例子做同样的事情。最后,服务器接受请求并返回响应。 第二个示例中的回调不包含异步代码,因此没有理由使此代码异步。相反,对服务器的请求是异步的,因此您应该在客户端代码中输入如下内容:async doServerRequest() await axios.get("/") 如果您不等待服务器请求,您的客户端代码不会等待服务器响应,而是会继续执行方法

以上是关于查询数据库和请求端点有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JProfiler 分析 Java mongodb 查询,“检索数据”和“查询”有啥区别

快递鸟即时查询API接口和物流跟踪接口有啥区别?

数据库调优和数据库查询优化有啥区别? [关闭]

数据库的SQL语句中,嵌套查询和连接查询有啥区别,说的详细的

sql语句中嵌套时候用in 和=有啥区别

联合查询的select选项和单表查询的select选项有啥区别?