节流,多个客户端请求,使用 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/1
和 localhost:3000/2
,您也会看到您期望的行为。
我正在尝试使用 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/1
和 localhost:3000/2
,您也会看到您期望的行为。