CSV-Dateien sind ein praktisches Datenspeicherformat, und Sie können sie in Ihren Node.js-Projekten verwenden, um alles von der Konfiguration bis hin zu Rohdaten zu verarbeiten. Sie können den Informationsaustausch zwischen zwei Apps vereinfachen, selbst wenn sie in verschiedenen Sprachen geschrieben sind.

In Node.js können Sie mehrere Methoden zum Lesen und Schreiben von CSV-Dateien verwenden.

Dieses Tutorial zeigt Ihnen, wie Sie die verwenden fs Modul u schnell-csv NPM-Paket zum Lesen und Schreiben von CSV-Dateien.

Projektaufbau

Um diesem Tutorial zu folgen, stellen Sie sicher, dass Node.js auf Ihrem Computer installiert ist. Führen Sie diesen Befehl aus, um Folgendes zu überprüfen:

Knoten -v

Es sollte eine Versionsnummer zurückgeben. Wenn Sie Node.js nicht installiert haben, folgen Sie den Anweisungen in diesem Installations-Tutorial dazu.

Erstellen Sie in Ihrem bevorzugten Verzeichnis einen neuen Ordner namens parse-csv.

mkdir parse-csv

Navigieren Sie zu parse-csv und eine neue Datei erstellen. Nennen Sie es parseCSV.js.

instagram viewer
CD parse-csv
berührenparseCSV.js

Sie können jetzt mit der Arbeit mit CSV beginnen.

Verwenden des fs-Moduls

Das Modul fs (kurz für Dateisystem) enthält mehrere Befehle für die Interaktion mit dem Dateisystem in Node.js.

Lesen Sie die gesamte Datei auf einmal

Das readFile() und readFileSync() Befehle aus der fs Modul ermöglichen es Ihnen, Dateiinhalte in Node.js zu lesen. Der Unterschied zwischen diesen Befehlen ist der readFileSync() ist synchron – es blockiert die Ausführung von anderem JavaScript – während readFile() ist asynchron oder nicht blockierend.

Da das Lesen von CSV-Dateien etwas Zeit in Anspruch nehmen kann, insbesondere bei großen Dateien, ist es oft besser, den nicht blockierenden Befehl zu verwenden. readFile(), Wie nachfolgend dargestellt.

konst fs = erfordern('fs');

fs.readFile('csvdemo.csv', 'utf8', Funktion (err, Daten) {
/* Daten parsen */
});

Wenn Sie keine CSV-Beispieldatei haben, können Sie eine generieren Mockaro. Sie können auch lernen, wie es geht eine CSV-Datei erstellen dich selbst.

Zeile für Zeile lesen

Während readFile() funktioniert, es ist speicherintensiv, da es die gesamte CSV-Datei auf einmal liest. Dies ist insbesondere bei der Arbeit mit großen CSV-Dateien ein Problem. Eine Alternative besteht darin, jeweils eine Zeile mit dem zu lesen fs.createReadStream() Befehl.

konst fs = erfordern("fs");
konst readline = erfordern("Zeile lesen");
const stream = fs.createReadStream("./csvdemo.csv");
konst rl = readline.createInterface({ Eingang: Stream });
Lassen Daten = [];

rl.on("Linie", (Zeile) => {
data.push (row.split(","));
});

rl.on("schließen", () => {
Konsole.Logdaten);
});

Hier übergeben Sie den CSV-Dateinamen an fs.createReadStream() um einen lesbaren Stream zu erstellen. Mit Streams können Sie mit großen Datenmengen arbeiten, indem Sie in Blöcken darauf zugreifen können.

Nachdem Sie den lesbaren Stream erstellt haben, übergeben Sie ihn an readline.createInterface() Methode. Das Zeile lesen Modul bietet eine Schnittstelle zum zeilenweisen Lesen der Daten. Sie können jetzt jede Zeile beim Lesen in das Datenarray verschieben.

Beachten Sie jedoch, dass dieser Code einfach jede Zeile durch Kommas trennt. Obwohl dies mit der einfachsten CSV-Datei funktioniert, ist das Format tatsächlich komplizierter als der Name vermuten lässt. Das manuelle Parsen von CSV-Dateien ist kein robuster Ansatz, insbesondere wenn Sie nicht selbst die Kontrolle über die Daten haben. Für die meisten Situationen sollten Sie eine CSV-Bibliothek verwenden.

Verwenden von Fast-CSV

Um CSV-Dateien zuverlässig zu parsen, können Sie eine Bibliothek wie verwenden schnell-csv, das als npm-Paket verfügbar ist. Es macht es einfacher, CSV-Dateien nicht nur zu lesen, sondern auch zu formatieren.

Initialisieren Sie zunächst npm und installieren schnell-csv.

npm init -y
npm i fast-csv

Lesen Sie CSV-Dateien mit Fast-CSV wie folgt.

konst fs = erfordern('fs')
konst csv = erfordern('schnell-csv');
konst Daten = []

fs.createReadStream('./csvdemo.csv')
.Rohr(csv.parsen({ Kopfzeilen: wahr }))
.An('Error', Fehler => console.error (Fehler))
.An('Daten', Zeile => data.push (Zeile))
.An('Ende', () => console.log (Daten));

Beginnen Sie im obigen Code mit der Erstellung eines lesbaren Streams aus der CSV-Datei und verbinden Sie ihn dann mit der Parse-Methode von Fast CSV using Rohr(). Beachten Sie, dass Sie die Header-Option an übergeben csv.parse(). Dadurch wird die erste Zeile übersprungen. Kopfzeilen setzen auf FALSCH wenn die erste Zeile Ihrer CSV-Datei keine Überschriften enthält.

Da die CSV-Datei zeilenweise gelesen wird, schieben Sie jede Zeile in das Datenarray. Nachdem die gesamte Datei gelesen wurde, können Sie den Inhalt des Datenarrays beliebig manipulieren.

Es gibt mehr als eine Möglichkeit, eine CSV-Datei zu parsen

CSV-Dateien sind nützlich zum Speichern großer Datensätze, da sie einfach zu analysieren sind. In Node.js können Sie das integrierte fs-Modul oder NPM-Pakete verwenden.

Die Verwendung einer Bibliothek wie fast-csv ist viel einfacher und robuster als das manuelle Schreiben Ihres eigenen Parsing-Codes. Einige andere Pakete zum Analysieren von CSV sind csv-Parser und Papa-Parser.

Ein Leitfaden für Anfänger zu RESTful-APIs in Node.js

Lesen Sie weiter

TeilenTwitternTeilenEmail

Verwandte Themen

  • Programmierung
  • Programmierung
  • JavaScript

Über den Autor

Maria Gathoni (18 veröffentlichte Artikel)

Mary Gathoni ist eine Softwareentwicklerin mit einer Leidenschaft für die Erstellung technischer Inhalte, die nicht nur informativ, sondern auch ansprechend sind. Wenn sie nicht gerade programmiert oder schreibt, trifft sie sich gerne mit Freunden und ist draußen.

Mehr von Mary Gathoni

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich anzumelden