问题
我一直在寻找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分钟。