route node another http node.js httprequest express

node - Express.js solicitud HTTP tiempo de espera



node express api (2)

Me preguntaba si alguien podría decirme cuál es el tiempo de espera predeterminado de solicitud HTTP cuando se usa Express.

Lo que quiero decir con esto es: ¿después de cuántos segundos de tratar con una solicitud http el servidor Express / Node.js cerrará la conexión, cuando el navegador o el servidor cerraron la conexión manualmente?

¿Cómo modifico este tiempo de espera para una ruta única? Me gustaría establecerlo en unos 15 minutos para una ruta especial de conversión de audio.

Muchas gracias.

Tom


req.connection.setTimeout(ms); parece establecer el tiempo de espera de solicitud para un servidor HTTP en Node.js.


req.connection.setTimeout(ms); podría ser una mala idea ya que se pueden enviar múltiples solicitudes en el mismo socket.

Pruebe connect-timeout o use esto:

var errors = require(''./errors''); const DEFAULT_TIMEOUT = 10000; const DEFAULT_UPLOAD_TIMEOUT = 2 * 60 * 1000; /* Throws an error after the specified request timeout elapses. Options include: - timeout - uploadTimeout - errorPrototype (the type of Error to throw) */ module.exports = function(options) { //Set options options = options || {}; if(options.timeout == null) options.timeout = DEFAULT_TIMEOUT; if(options.uploadTimeout == null) options.uploadTimeout = DEFAULT_UPLOAD_TIMEOUT; return function(req, res, next) { //timeout is the timeout timeout for this request var tid, timeout = req.is(''multipart/form-data'') ? options.uploadTimeout : options.timeout; //Add setTimeout and clearTimeout functions req.setTimeout = function(newTimeout) { if(newTimeout != null) timeout = newTimeout; //Reset the timeout for this request req.clearTimeout(); tid = setTimeout(function() { if(options.throwError && !res.finished) { //throw the error var proto = options.error == null ? Error : options.error; next(new proto("Timeout " + req.method + " " + req.url) ); } }, timeout); }; req.clearTimeout = function() { clearTimeout(tid); }; req.getTimeout = function() { return timeout; }; //proxy end to clear the timeout var oldEnd = res.end; res.end = function() { req.clearTimeout(); res.end = oldEnd; return res.end.apply(res, arguments); } //start the timer req.setTimeout(); next(); }; }