javascript - Node Express 不处理并行请求
问题描述
我刚刚创建了一个 NodeJS Express 服务器来了解 NodeJS 的工作原理。我了解到 NodeJS 可以同时处理大量的 API 请求,因为 CPU 密集型任务不是由同一个线程完成的。
但是,我的服务器甚至无法同时处理 2 个请求,这也没有任何 CPU 密集型任务。我很确定我在这里遗漏了一些东西。这是我的代码:
const http = require('http');
const express = require('express');
const app = express();
const waitForSomeTime = () => new Promise((resolve) => {
setTimeout(() => resolve(), 5000);
});
app.use(async (req, res) => {
console.log('Request received');
await waitForSomeTime();
console.log('Response sending')
return res.send('DONE');
})
app.set('port', 3000);
const server = http.createServer(app);
server.listen(3000, () => { });
目前,当我同时使用 2 个请求访问 API 时,服务器会在 5 秒后解析第一个请求,然后接受第二个请求。总时间为 10 秒。我在我的本地 Mac 系统和一个有 4 个内核的 Linux VM 中尝试了这个应用程序。
理想情况下,NodeJS 不应该在启动第一个请求的计时器后立即接受第二个请求。从而在 5 秒内解决两个请求
我需要在机器设置中配置什么吗?或任何地方?
解决方案
问题是因为我使用浏览器刺激了对服务器的模拟点击。如果对同一个 API 完成后续请求,Google chrome 会暂停后续请求,这就是我认为我的服务器出现问题的原因。
推荐阅读
- javascript - 如何让我的数据表导出源数据,而不是生成的数据?
- reactjs - 为 ReactJS 使用 npm start 时出现错误
- php - 将结果显示为单行
- spring - 3个实体之间的映射
- .net-core - 在 Linux 上使用 Mono 运行已编译的 F# 程序
- oracle - 循环,异常,光标
- storybook - 如何在汇总包中最好地包含 scss 文件中引用的资产(图像和字体)
- java - 带有 PageRequest 的 nativeQuery 参数
- c++ - c++计算物理学中的导数计算错误
- npm - NPM install @latest 不安装最新版本的包