ПРОБЛЕМА
Я искал тайм-ауты запроса/ответа для Express.js, но все, кажется, связано с соединением, а не с самим запросом/ответом.
Если запрос занимает много времени, он должен быть отключен. Очевидно, это не должно произойти, но даже простая ошибка, связанная с обработкой маршрута без вызова обратного вызова или без res.send()
, браузер будет продолжать ждать ответа навсегда.
Пустой обработчик маршрута - прекрасный пример этого.
app.get('/sessions/', function(req, res, callback){});
FIX
Я добавил следующий до 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 минуты.