MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

NodeJS/ExpressJS sendet die Antwort einer großen Datenmenge in einem Stream

http.request() von Node gibt Daten in Blöcken zurück für Streaming (wäre schön, wenn sie dies ausdrücklich angeben). Daher ist es notwendig, jeden Teil der Antwort von Express zu schreiben, auf das Ende von zu hören http-Anfrage (was nicht wirklich dokumentiert ist) und dann response.end() aufrufen um die Antwort tatsächlich abzuschließen.

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();

Wobei response ist die Antwort von Express auf die anfängliche Client-Anfrage (Curl- oder Angular-Ajax-Aufruf).