CSV-filer er et praktisk datalagringsformat, og du kan bruke dem i Node.js-prosjektene dine for å håndtere alt fra konfigurasjon til rådata. De kan forenkle deling av informasjon mellom to apper, selv om de er skrevet på forskjellige språk.
I Node.js kan du bruke flere metoder for å lese og skrive CSV-filer.
Denne opplæringen viser deg hvordan du bruker fs modul og rask-csv NPM-pakke for å lese og skrive CSV-filer.
Prosjektoppsett
For å følge med på denne opplæringen, sørg for at du har Node.js installert på maskinen din. Kjør denne kommandoen for å sjekke:
node -v
Den skal returnere et versjonsnummer. Hvis du ikke har Node.js installert, følg instruksjonene i denne installasjonsveiledning å gjøre slik.
Opprett en ny mappe kalt parse-csv i din foretrukne katalog.
mkdir parse-csv
Navigere til parse-csv og lag en ny fil. Gi den et navn parseCSV.js.
cd parse-csv
ta påparseCSV.js
Du kan nå begynne å jobbe med CSV.
Bruke fs-modulen
fs (forkortelse for filsystem)-modulen inneholder flere kommandoer for samhandling med filsystemet i Node.js.
Les hele filen på en gang
De readFile() og readFileSync() kommandoer fra fs modul lar deg lese filinnhold i Node.js. Forskjellen mellom disse kommandoene er at readFileSync() er synkron – den blokkerer andre JavaScript fra å kjøre – mens readFile() er asynkron eller ikke-blokkerende.
Siden lesing av CSV-filer kan ta litt tid, spesielt for store filer, er det ofte bedre å bruke den ikke-blokkerende kommandoen, readFile(), som vist under.
konst fs = krever('fs');
fs.readFile('csvdemo.csv', 'utf8', funksjon (feil, data) {
/* analysere data */
});
Hvis du ikke har en eksempel-CSV-fil, kan du generere en fra mockaroo. Du kan også lære hvordan opprette en CSV-fil deg selv.
Les linje for linje
Samtidig som readFile() fungerer, den er minnekrevende siden den leser hele CSV-filen på en gang. Dette er et problem, spesielt når du arbeider med store CSV-filer. Et alternativ er å lese en linje om gangen ved å bruke fs.createReadStream() kommando.
konst fs = krever("fs");
konst leselinje = krever("leselinje");
const stream = fs.createReadStream("./csvdemo.csv");
konst rl = readline.createInterface({ input: strøm });
la data = [];rl.on("linje", (rad) => {
data.push (row.split(","));
});
rl.on("Lukk", () => {
konsoll.log (data);
});
Her sender du CSV-filnavnet til fs.createReadStream() for å lage en lesbar strøm. Strømmer lar deg jobbe med store mengder data ved å gi deg tilgang til dem i biter.
Når du har opprettet den lesbare strømmen, send den til readline.createInterface() metode. De leselinje modulen gir et grensesnitt for å lese dataene en linje om gangen. Du kan nå skyve hver rad til datamatrisen mens den leses.
Vær imidlertid oppmerksom på at denne koden ganske enkelt deler hver rad med kommaer. Selv om dette vil fungere med den mest grunnleggende CSV-filen, er formatet faktisk mer komplisert enn navnet tilsier. Å analysere CSV-filer manuelt er ikke en robust tilnærming, spesielt hvis du ikke har kontroll over dataene selv. For de fleste situasjoner bør du bruke et CSV-bibliotek.
Bruker fast-csv
For å analysere CSV-filer pålitelig, kan du bruke et bibliotek som rask-csv, som er tilgjengelig som en npm-pakke. Det gjør det enklere å ikke bare lese CSV-filer, men også formatere dem.
For å komme i gang, initialiser npm og installere rask-csv.
npm init -y
npm i fast-csv
Les CSV-filer med hurtig-csv som følger.
konst fs = krever('fs')
konst csv = krever('rask-csv');
konst data = []
fs.createReadStream('./csvdemo.csv')
.rør(csv.parse({ overskrifter: sant }))
.på('feil', feil => console.error (feil))
.på('data', rad => data.push (rad))
.på('slutt', () => console.log (data));
I koden ovenfor, start med å lage en lesbar strøm fra CSV-filen og koble den til parsemetoden fra rask CSV ved å bruke rør(). Merk at du sender overskriftsalternativet til csv.parse(). Dette hopper over den første raden. Sett overskrifter til falsk hvis den første raden i CSV-filen ikke inneholder overskrifter.
Ettersom CSV-filen leses én rad om gangen, skyver du hver rad til datamatrisen. Etter at hele filen er lest, kan du manipulere innholdet i datamatrisen som du vil.
Det er mer enn én måte å analysere en CSV på
CSV-filer er nyttige for lagring av store datasett fordi det er enkelt å analysere dem. I Node.js kan du bruke den innebygde fs-modulen eller NPM-pakkene.
Å bruke et bibliotek som fast-csv er mye enklere og mer robust enn å skrive din egen parsingkode manuelt. Noen andre pakker for å analysere CSV er csv-parser og pappa parser.
En nybegynnerveiledning til RESTful APIer i Node.js
Les Neste
Relaterte temaer
- Programmering
- Programmering
- JavaScript
Om forfatteren
Mary Gathoni er en programvareutvikler med en lidenskap for å lage teknisk innhold som ikke bare er informativt, men også engasjerende. Når hun ikke koder eller skriver, liker hun å henge med venner og være utendørs.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere