节流,多个客户端请求,使用 express 在节点 js 中线程化

Throttling, Multiple client requests, threading in node js with express

我正在尝试使用 express 在 Node 中编写一个简单的 API 管理器。

我注册了一条简单的路线,我在 10 秒后回复了每个备用请求。我想我应该立即得到我没有得到的所有其他请求的响应。 即使是请求也会被挂起,但奇怪的请求应该立即给我答复,但我没有收到。请指导如何做到这一点。

    var express = require('express');
    var apiRoutes = express.Router();

    var i=0;
    apiRoutes.get('/',function(req,res){
      i++;
      if(i%2==0)
      {
        setTimeout(function(){res.json({message:"i responsed after 5"})},5000);
      }
      else
      {
        res.json({message:"i responsed immediately"});
      }

    });


    module.exports = apiRoutes;

经过一番搜索,我找到了 this answer。所以看起来它是浏览器,而不是快递代码。

要对此进行测试,请从您的终端 (curl localhost:3000) 访问服务器,您会看到它按预期运行!

或者,使用这一行 apiRoutes.get('/:number', function(req,res){,然后从您的浏览器点击 localhost:3000/1localhost:3000/2,您也会看到您期望的行为。