如何通过阻止对node.js中的一个URI的请求来解决麻烦?

我想解决阻止对同一个URI的请求的问题。 我正在使用Express进行路由请求。

app.get('/task', function(req, res){ console.log("geted"); setTimeout(function(){ res.json({"status":"ok"}); res.end(); },10000); }); 

如果我连续两次请求这个uri [localhost / task],那么第二个“geted”只有在执行第一个请求后才会出现。 第一次请求后10秒。

 geted GET /task 200 10016ms - 20b geted GET /task 200 10005ms - 20b 

其他URI的请求没有被locking(感谢Express),尽pipe直到那时,还没有发送两个相同的请求。

问题是为什么以及如何避免/解决这个问题?

nodejs v10.26.0 express v3.4.8

这不是节点问题,这是由您的浏览器引起的。

如果您在一个浏览器实例中发送两个相同的请求(例如,在同一个浏览器中有两个打开的标签),那么您的浏览器将不会发送第二个请求,直到第一个请求完成。

尝试打开两个不同的浏览器,例如一个Chrome和一个Firefox,然后从每个浏览器发送一次请求。 我敢打赌,你会看到它按照你的期望行事。