Ich scrappe eine Webseite mit vielen Daten darauf, formatiert als HTML-Tabelle. Sie müssen ein Formular senden, um die Tabelle zu generieren. Mein Knotenscript übergibt alle Permutationen des Formulars und jedes Mal kratzt die resultierende Tabelle, wobei jede Zeile in eine Datenzeile umgewandelt wird.Node.js: fs writestream beendet das Schreiben in Datei, wenn die Datei zu groß wird
Das Problem ist, wenn ich die Daten in eine Datei schreibe, funktioniert es nicht mehr, wenn die Datei etwa 10 MB groß wird. Manchmal ist es ein bisschen weniger; manchmal ein bisschen mehr. Ich habe versucht, die Datei als .csv, .json und .txt zu schreiben, und jedes Mal tritt das gleiche Problem auf.
Ich verwende fs
, um diese Aufgabe auszuführen. Der entsprechende Code ist:
var fs = require("fs");
var stream = fs.createWriteStream("data.csv"); // can also be .json or .txt
stream.write(line_of_data);
Ich kann console.log(line_of_data)
und es funktioniert gut, den ganzen Weg durch, bis es keine Daten gibt kratzen gelassen. Bei etwa 10 MB akzeptiert die Ausgabedatei jedoch keine weiteren Datenzeilen. Der Haltepunkt scheint fast völlig willkürlich - jedes Mal, wenn ich das Skript ausführe, hört es auf, an einem anderen Punkt zu schreiben. Ich habe reichlich Speicherplatz auf meiner Festplatte, also muss das Problem mit etwas anderem zu tun haben.
Können Sie verschiedene resultierende Tabellen in verschiedenen Dateien speichern und sie am Ende mit etwas anderem als nodeJS zusammenführen? – atayenel
siehe diese Antwort http://stackoverflow.com/questions/9486683/writing-large-files-with-node-js –