javascript - 处理多个并发请求 Express

标签 javascript node.js rest api express

我开始使用 Node Js 和 Express 创建一个 webapi。

然后出现了以下问题:

如果我有一个函数可以处理 /请求如下:

router.get('/', (req, res, next) => {
  pool.query("select * from users").then((data) => {
    setTimeout(() => {
      res.json(data.rows);
    }, 5000);
  }).catch((err) => {
    res.json({
      error: err
    });
  });
});

考虑到数据库查询时间比预期长,其他用户是否能够同时请求相同的路由?或者 Express 会阻止它直到它对第一个请求做出响应?

**then()里面的超时函数 block 只是为了说明我的意思。

最佳答案

其他用户将能够同时请求相同的路线。

Node/Express 自动处理并发请求。 它们在事件驱动模型中运行,这意味着没有任何阻塞并且所有内容都同时运行。 Javascript 是单线程的,因此每个程序都在单个核心上运行,但每行代码都会执行,而无需等待任何返回。

关于javascript - 处理多个并发请求 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49848120/

相关文章:

.net - 为 web 服务、soap 和 rest 创建测试用例

javascript - 我的代码中的 Jquery 删除行表错误

javascript - 如何将多个 jQuery 对象收集到一个 jQuery 对象中?

java - ReSTLet Android 客户端 - 如何将 ASP.NET Web API 的 JSON 响应映射到我的 Java 对象

rest - 使用wslite从rest响应中获取excel文件

javascript - Node 是有状态的吗? Node能否在内存中维护变量

javascript - cefsharp 显示网站的困难

javascript - Node.js Express 4.0 中 res.render 回调参数的用途是什么?

node.js - 在 nodejs 项目 VSCode 中禁用 DOM 库类型定义

javascript - 单击事件监听器仅适用于从 mongoDB 和 node.js 生成的第一个列表项