node.js - nodejs http post parse



Comment modifier le délai d'expiration par défaut de la requête nodejs? (3)

J'utilise un serveur Node / Express. Le délai d'attente par défaut de l'express est de 120 000 ms, mais cela ne me suffit pas. Lorsque ma réponse atteindra 120 000 ms, la console enregistrera POST /additem 200 120006ms et la page affichera une erreur, donc je veux régler le timeout sur une valeur plus grande. Comment ferais-je cela?

https://src-bin.com


Answer #1

Essaye ça:

var options = {
    url:  'http://url',
    timeout: 120000
}

request(options, function(err, resp, body) {});

Reportez-vous à la documentation de la request pour d'autres options.


Answer #2

Je suppose que vous utilisez express , compte tenu des journaux que vous avez dans votre question. La clé consiste à définir la propriété timeout sur le serveur (la valeur suivante définit le délai d'attente sur une seconde, utilisez la valeur souhaitée):

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});
server.timeout = 1000;

Si vous n'utilisez pas express et ne travaillez qu'avec un noeud vanilla, le principe est le même. Les éléments suivants ne retourneront pas de données:

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');

Answer #3

Pour une requête spécifique, on peut mettre timeOut à 0, ce qui n'est pas timeout jusqu'à ce qu'on obtienne une réponse de DB ou autre serveur

request.setTimeout(0)




timeout