Node.js, Express, MongoDB und Streams

8

Ich suche nach dem besten Weg, um Daten von MongoDB zu meinem Web-Client über meine Node.js Server-Ebene zu streamen. Ich fordere ca. 10MB Daten für jede Abfrage und die Abfrage ist bereits auf day_timestamp indiziert. Hinweis, Ich habe diesen Beitrag bereits gelesen.

Das einzige mit Mongo verwandte Modul, das ich verwende, ist wie folgt (brauche ich andere, um meine Ziele zu erreichen?):

%Vor%

Momentan sieht mein Code ungefähr so ​​aus:

%Vor%

Dies funktioniert, aber es scheint keine Leistungsverbesserungen im Vergleich zu einer 'normalen' collection.find () Callback-Verschachtelung res.json(...);

zu bieten

Ich würde gerne ein paar Dinge verstehen.

Erstens möchte ich Daten von MongoDB direkt auf meinen Nods.js-Server streamen ... und sobald es auf meinem Server ankommt, streame es direkt zum Client. Wenn nötig, kann dies BSON sein und ich kann es beim Client deserialisieren. Ist das möglich?

Zweitens, wie würde ich ein Beispiel für das Timing dieser Stream-Performance im Vergleich zu einem normalen calls.find () -Rückruf hinzufügen? Mit letzterem Beispiel kann ich das leicht erreichen, aber mir ist nicht klar, wie ich das mit dem Stream-Beispiel machen würde (NB stream.end scheint nicht so zu funktionieren, wie ich es aufgrund der .pipe erwarten würde)

Drittens versuche ich, meine Daten so schnell wie möglich von MongoDB zu meinem Client zu bekommen, und meine Node.js muss nicht viel (wenn überhaupt) Daten verarbeiten, weil die Daten wie benötigt in der Datenbank gespeichert werden. Gehe ich über die Dinge, um dieses Ziel zu erreichen?

    
jtromans 19.02.2014, 15:41
quelle

1 Antwort

1

Dies schreibt jedes Mal in res , wenn Daten geschrieben werden sollen:

%Vor%     
algoni 19.12.2016 22:34
quelle