你能否提一下为什么一次快递处理一个请求?我认为应该可以一次做多个。
const express = require('express');
const app = express();
var count = 0;
app.get('/', (req, res) => {
count++;
if (count > 1) {
console.log('concurrent!');
debugger;
}
console.log(count);
count--;
res.send('Hello World!');
});
app.listen(1333, () => console.log('Example app listening on port 1333!'));
无论如何,我都不会使用调试器。试图用ab发送多个req:
ab -n 100 -c 100 -m GET localhost:1333/
他们总是在等着彼此......
节点“单线程”,我的意思是Node的事件循环是单线程的,它与express无关。只有“IO”像数据库查询,文件读取等异步管理...
在这里你有没有IO的基本代码,所以每个请求都是逐个处理的,并且会在发布的订单上完成。如果你有asynchrone调用它不会是这种情况。
您可以查看此文章以获取更多详细信息:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/