CSV datoteke su prikladan format za pohranu podataka i možete ih koristiti u svojim Node.js projektima za obradu bilo čega, od konfiguracije do sirovih podataka. Oni mogu pojednostaviti dijeljenje informacija između dvije aplikacije, čak i ako su napisane na različitim jezicima.

U Node.js možete koristiti nekoliko metoda za čitanje i pisanje CSV datoteka.

Ovaj vodič vam pokazuje kako koristiti fs modul i brzi-csv NPM paket za čitanje i pisanje CSV datoteka.

Postavljanje projekta

Da biste slijedili ovaj vodič, provjerite imate li Node.js instaliran na vašem računalu. Pokrenite ovu naredbu da provjerite:

čvor -v

Trebao bi vratiti broj verzije. Ako nemate instaliran Node.js, slijedite upute u ovome vodič za instalaciju učiniti tako.

U željenom direktoriju stvorite novu mapu pod nazivom parse-csv.

mkdir parse-csv

Dođite do parse-csv i kreirajte novu datoteku. Imenujte ga parseCSV.js.

CD parse-csv
dodirparseCSV.js

Sada možete početi raditi s CSV-om.

Korištenje modula fs

Modul fs (skraćenica za datotečni sustav) sadrži nekoliko naredbi za interakciju s datotečnim sustavom u Node.js.

instagram viewer

Pročitajte cijelu datoteku odjednom

The readFile() i readFileSync() naredbe iz fs modul omogućuje čitanje sadržaja datoteke u Node.js. Razlika između ovih naredbi je u tome što readFileSync() je sinkrono – blokira izvršavanje drugog JavaScripta – dok readFile() je asinkrono ili neblokirajuće.

Budući da čitanje CSV datoteka može potrajati, posebno za velike datoteke, često je bolje koristiti naredbu koja ne blokira blokiranje, readFile(), kako je prikazano dolje.

konst fs = zahtijevati('fs');

fs.readFile('csvdemo.csv', 'utf8', funkcija (greška, podaci) {
/* analizirati podatke */
});

Ako nemate primjer CSV datoteke, možete je generirati iz mockaroo. Također možete naučiti kako izradite CSV datoteku sami.

Čitaj redak po redak

Dok readFile() radi, zahtijeva memoriju jer čita cijelu CSV datoteku odjednom. To je problem, osobito kada radite s velikim CSV datotekama. Alternativa je čitati jedan po redak koristeći fs.createReadStream() naredba.

konst fs = zahtijevati("fs");
konst readline = zahtijevati("red za čitanje");
const stream = fs.createReadStream("./csvdemo.csv");
konst rl = readline.createInterface({ ulazni: tok });
neka podaci = [];

rl.on("crta", (red) => {
data.push (red.split(","));
});

rl.on("Zatvoriti", () => {
konzola.log (podaci);
});

Ovdje prosljeđujete naziv CSV datoteke fs.createReadStream() za stvaranje čitljivog toka. Streamovi vam omogućuju rad s velikim količinama podataka omogućujući vam da im pristupite u komadima.

Nakon što stvorite čitljiv stream, proslijedite ga readline.createInterface() metoda. The readline modul pruža sučelje za čitanje podataka jedan po redak. Sada možete gurnuti svaki redak u niz podataka dok se čita.

Imajte na umu, međutim, da ovaj kod jednostavno dijeli svaki red na zareze. Iako će ovo funkcionirati s najosnovnijom CSV datotekom, format je zapravo kompliciraniji nego što mu naziv implicira. Ručno raščlanjivanje CSV datoteka nije robustan pristup, pogotovo ako sami nemate kontrolu nad podacima. U većini situacija trebali biste koristiti CSV biblioteku.

Korištenje fast-csv

Da biste pouzdano analizirali CSV datoteke, možete koristiti biblioteku kao što je brzi-csv, koji je dostupan kao npm paket. Olakšava ne samo čitanje CSV datoteka, već i njihovo formatiranje.

Za početak, inicijalizirajte npm i instalirati brzi-csv.

npm init -y
npm i fast-csv

Čitajte CSV datoteke koristeći fast-csv na sljedeći način.

konst fs = zahtijevati('fs')
konst csv = zahtijevati('fast-csv');
konst podaci = []

fs.createReadStream('./csvdemo.csv')
.cijev(csv.raščlaniti({ zaglavlja: istina }))
.na('pogreška', pogreška => console.error (greška))
.na('podaci', red => data.push (red))
.na('kraj', () => console.log (podaci));

U gornjem kodu počnite stvaranjem čitljivog streama iz CSV datoteke, a zatim ga povežite s metodom raščlanjivanja iz brzog CSV-a pomoću cijev(). Imajte na umu da prosljeđujete opciju zaglavlja csv.parse(). Time se preskače prvi red. Postavite zaglavlja na lažno ako prvi red vaše CSV datoteke ne sadrži zaglavlja.

Kako se CSV datoteka čita jedan po redak, svaki redak gurate u niz podataka. Nakon što se cijela datoteka pročita, možete manipulirati sadržajem niza podataka kako želite.

Postoji više od jednog načina za raščlanjivanje CSV-a

CSV datoteke korisne su za pohranjivanje velikih skupova podataka jer ih je lako raščlaniti. U Node.js možete koristiti ugrađeni fs modul ili NPM pakete.

Korištenje biblioteke kao što je fast-csv mnogo je lakše i robusnije od ručnog pisanja vlastitog koda za raščlanjivanje. Neki drugi paketi za raščlanjivanje CSV-a su csv-parser i papa parser.

Vodič za početnike za RESTful API-je u Node.js

Pročitajte dalje

UdioCvrkutUdioE-mail

Povezane teme

  • Programiranje
  • Programiranje
  • JavaScript

O autoru

Mary Gathoni (Objavljeno 18 članaka)

Mary Gathoni je programerica softvera sa strašću za stvaranje tehničkog sadržaja koji nije samo informativan nego i privlačan. Kad ne kodira i ne piše, uživa u druženju s prijateljima i na otvorenom.

Više od Mary Gathoni

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu