MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

NodeJS/ExpressJS envoie une réponse d'une grande quantité de données dans 1 flux

Le http.request() de Node renvoie les données en morceaux pour le streaming (ce serait bien s'ils l'indiquaient explicitement). Il est donc nécessaire d'écrire chaque morceau dans le corps de la réponse d'Express, écoutez la fin de la requête http (ce qui n'est pas vraiment documenté), puis appelez response.end() pour terminer la réponse.

var req = http.request(options, function(res)
  {
    res.on( 'data', function(chunk) { response.write(chunk); } );
    res.on( 'end', function() { response.end(); } );
  }
);
req.on('error', function(error) { … });
req.end();

response est la réponse d'Express à la requête initiale du client (appel ajax de curl ou angular).