问题
我一直在寻找 Express.js 的请求/响应超时,但似乎一切都与连接有关,而不是与请求/响应本身有关。
如果一个请求花费了很长时间,那么它应该超时。显然,这种情况不应该发生,但即使是一个简单的错误,比如拥有一个没有调用回调或没有 res.send()
的路由处理程序,浏览器也会永远等待回复。
空路由处理程序就是一个很好的例子。
app.get('/sessions/', function(req, res, callback){});
修正
我添加了以下 之前 app.use(app,router);
,它似乎添加了超时功能。有人对此有什么经验或看法吗?
app.use(function(req, res, next){
res.setTimeout(120000, function(){
console.log('Request has timed out.');
res.send(408);
});
next();
});
注意,我将超时时间设置为2分钟。