CSV-bestanden zijn een handig formaat voor gegevensopslag en u kunt ze in uw Node.js-projecten gebruiken om alles te verwerken, van configuratie tot onbewerkte gegevens. Ze kunnen het delen van informatie tussen twee apps vereenvoudigen, zelfs als ze in verschillende talen zijn geschreven.

In Node.js kunt u verschillende methoden gebruiken om CSV-bestanden te lezen en te schrijven.

Deze tutorial laat je zien hoe je de fs module en snel-csv NPM-pakket om CSV-bestanden te lezen en te schrijven.

Projectconfiguratie

Om deze zelfstudie te volgen, moet u ervoor zorgen dat Node.js op uw computer is geïnstalleerd. Voer deze opdracht uit om te controleren:

knoop -v

Het zou een versienummer moeten retourneren. Als je Node.js niet hebt geïnstalleerd, volg dan de instructies in deze installatie tutorial om dat te doen.

Maak in de map van uw voorkeur een nieuwe map met de naam parse-csv.

mkdir ontleden-csv

Navigeren naar parse-csv en maak een nieuw bestand aan. Noem het parseCSV.js.

CD parse-csv
aanrakenontledenCSV.js
instagram viewer

U kunt nu aan de slag met CSV.

De fs-module gebruiken

De module fs (afkorting van bestandssysteem) bevat verschillende opdrachten voor interactie met het bestandssysteem in Node.js.

Lees het hele bestand in één keer

De leesFile() en leesFileSync() commando's van de fs module stelt u in staat om bestandsinhoud in Node.js te lezen. Het verschil tussen deze commando's is dat: leesFileSync() is synchroon - het blokkeert andere JavaScript om uit te voeren - terwijl leesFile() is asynchroon of niet-blokkerend.

Aangezien het lezen van CSV-bestanden enige tijd kan duren, vooral voor grote bestanden, is het vaak beter om het niet-blokkerende commando te gebruiken, leesFile(), zoals hieronder weergegeven.

const fs = vereisen('fs');

fs.readFile('csvdemo.csv', 'utf8', functie (fout, gegevens) {
/* gegevens ontleden */
});

Als u geen voorbeeld-CSV-bestand heeft, kunt u er een genereren vanuit: mockaroo. U kunt ook leren hoe u maak een CSV-bestand aan jezelf.

Regel voor regel lezen

Terwijl leesFile() werkt, is het geheugenintensief omdat het het hele CSV-bestand in één keer leest. Dit is een probleem, vooral bij het werken met grote CSV-bestanden. Een alternatief is om regel voor regel te lezen met de fs.createReadStream() opdracht.

const fs = vereisen("fs");
const leesregel = vereisen("Lees regel");
const stream = fs.createReadStream("./csvdemo.csv");
const rl = leesregel.createInterface({ invoer: stroom });
laat gegevens = [];

rl.on("lijn", (rij) => {
data.push (rij.split(","));
});

rl.on("dichtbij", () => {
troosten.log (gegevens);
});

Hier geef je de CSV-bestandsnaam door aan: fs.createReadStream() om een ​​leesbare stream te maken. Met Streams kunt u met grote hoeveelheden gegevens werken doordat u deze in brokken kunt openen.

Zodra u de leesbare stream hebt gemaakt, geeft u deze door aan readline.createInterface() methode. De Lees regel module biedt een interface om de gegevens regel voor regel te lezen. U kunt nu elke rij naar de gegevensarray pushen terwijl deze wordt gelezen.

Merk echter op dat deze code elke rij eenvoudig splitst op komma's. Hoewel dit werkt met het meest eenvoudige CSV-bestand, is het formaat eigenlijk ingewikkelder dan de naam aangeeft. Het handmatig parseren van CSV-bestanden is geen robuuste aanpak, vooral als u de gegevens niet zelf onder controle hebt. Voor de meeste situaties moet u een CSV-bibliotheek gebruiken.

fast-csv. gebruiken

Om CSV-bestanden betrouwbaar te ontleden, kunt u een bibliotheek gebruiken zoals snel-csv, die beschikbaar is als een npm-pakket. Het maakt het niet alleen gemakkelijker om CSV-bestanden te lezen, maar ook om ze te formatteren.

Initialiseer om te beginnen npm en installeer snel-csv.

npm init -y
npm ik snel-csv

Lees CSV-bestanden als volgt met fast-csv.

const fs = vereisen('fs')
const csv = vereisen('snel-csv');
const gegevens = []

fs.createReadStream('./csvdemo.csv')
.pijp(csv.parse({ kopteksten: WAAR }))
.Aan('fout', fout => console.error (fout))
.Aan('gegevens', rij => data.push (rij))
.Aan('einde', () => console.log (gegevens));

Begin in de bovenstaande code met het maken van een leesbare stream uit het CSV-bestand en verbind deze vervolgens met de ontledingsmethode vanuit snelle CSV met behulp van pijp(). Merk op dat je de headers-optie doorgeeft aan: csv.parse(). Hiermee wordt de eerste rij overgeslagen. Kopteksten instellen op vals als de eerste rij van uw CSV-bestand geen headers bevat.

Omdat het CSV-bestand rij voor rij wordt gelezen, pusht u elke rij naar de gegevensarray. Nadat het hele bestand is gelezen, kunt u de inhoud van de gegevensarray manipuleren zoals u wilt.

Er is meer dan één manier om een ​​CSV te ontleden

CSV-bestanden zijn handig voor het opslaan van grote datasets omdat het gemakkelijk is om ze te ontleden. In Node.js kunt u de ingebouwde fs-module of NPM-pakketten gebruiken.

Het gebruik van een bibliotheek zoals fast-csv is veel eenvoudiger en robuuster dan het handmatig schrijven van uw eigen parseercode. Enkele andere pakketten voor het ontleden van CSV zijn: csv-parser en papa parser.

Een beginnershandleiding voor RESTful API's in Node.js

Lees volgende

DelenTweetenDelenE-mail

Gerelateerde onderwerpen

  • Programmeren
  • Programmeren
  • JavaScript

Over de auteur

Mary Gathoni (18 artikelen gepubliceerd)

Mary Gathoni is een softwareontwikkelaar met een passie voor het maken van technische inhoud die niet alleen informatief maar ook boeiend is. Als ze niet aan het coderen of schrijven is, gaat ze graag met vrienden om en is ze graag buiten.

Meer van Mary Gathoni

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren