CSV-filer er et praktisk datalagringsformat, og du kan bruge dem i dine Node.js-projekter til at håndtere alt fra konfiguration til rådata. De kan forenkle deling af information mellem to apps, selvom de er skrevet på forskellige sprog.

I Node.js kan du bruge flere metoder til at læse og skrive CSV-filer.

Denne tutorial viser dig, hvordan du bruger fs modul og hurtig-csv NPM-pakke til at læse og skrive CSV-filer.

Projektopsætning

For at følge med i denne vejledning skal du sikre dig, at du har Node.js installeret på din maskine. Kør denne kommando for at kontrollere:

node -v

Det burde returnere et versionsnummer. Hvis du ikke har Node.js installeret, skal du følge instruktionerne i denne installation tutorial for at gøre det.

I din foretrukne mappe skal du oprette en ny mappe ved navn parse-csv.

mkdir parse-csv

Naviger til parse-csv og opret en ny fil. Navngiv den parseCSV.js.

cd parse-csv
røre vedparseCSV.js

Du kan nu begynde at arbejde med CSV.

Brug af fs-modulet

fs-modulet (forkortelse for filsystem) indeholder flere kommandoer til at interagere med filsystemet i Node.js.

instagram viewer

Læs hele filen på én gang

Det readFile() og readFileSync() kommandoer fra fs modul giver dig mulighed for at læse filindhold i Node.js. Forskellen mellem disse kommandoer er det readFileSync() er synkron - det blokerer andet JavaScript i at køre - mens readFile() er asynkron eller ikke-blokerende.

Da læsning af CSV-filer kan tage lidt tid, især for store filer, er det ofte bedre at bruge den ikke-blokerende kommando, readFile(), som vist nedenfor.

konst fs = kræve('fs');

fs.readFile('csvdemo.csv', 'utf8', funktion (fejl, data) {
/* parse data */
});

Hvis du ikke har en eksempel-CSV-fil, kan du generere en fra mockaroo. Du kan også lære at oprette en CSV-fil dig selv.

Læs linje for linje

Mens readFile() virker, er det hukommelsesintensivt, da det læser hele CSV-filen på én gang. Dette er et problem, især når du arbejder med store CSV-filer. Et alternativ er at læse en linje ad gangen ved hjælp af fs.createReadStream() kommando.

konst fs = kræve("fs");
konst læselinje = kræve("læselinje");
const stream = fs.createReadStream("./csvdemo.csv");
konst rl = readline.createInterface({ input: stream });
lade data = [];

rl.on("linje", (række) => {
data.push (row.split(","));
});

rl.on("tæt", () => {
konsol.log (data);
});

Her sender du CSV-filnavnet til fs.createReadStream() for at skabe en læsbar stream. Streams giver dig mulighed for at arbejde med store mængder data ved at give dig adgang til dem i bidder.

Når du har oprettet den læsbare strøm, skal du videregive den til readline.createInterface() metode. Det læselinje modul giver en grænseflade til at læse dataene en linje ad gangen. Du kan nu skubbe hver række til dataarrayet, mens det læses.

Bemærk dog, at denne kode simpelthen opdeler hver række på kommaer. Selvom dette vil fungere med den mest grundlæggende CSV-fil, er formatet faktisk mere kompliceret, end navnet antyder. At parse CSV-filer manuelt er ikke en robust tilgang, især hvis du ikke selv har kontrol over dataene. I de fleste situationer bør du bruge et CSV-bibliotek.

Brug af fast-csv

For at parse CSV-filer pålideligt kan du bruge et bibliotek som f.eks hurtig-csv, som er tilgængelig som en npm-pakke. Det gør det lettere ikke kun at læse CSV-filer, men også at formatere dem.

For at komme i gang skal du initialisere npm og installere hurtig-csv.

npm init -y
npm i fast-csv

Læs CSV-filer ved hjælp af fast-csv som følger.

konst fs = kræve('fs')
konst csv = kræve('hurtig-csv');
konst data = []

fs.createReadStream('./csvdemo.csv')
.rør(csv.parse({ overskrifter: rigtigt }))
.på('fejl', fejl => console.error (fejl))
.på('data', række => data.push (række))
.på('ende', () => console.log (data));

I ovenstående kode skal du starte med at oprette en læsbar stream fra CSV-filen og derefter forbinde den til parsemetoden fra hurtig CSV ved hjælp af rør(). Bemærk, at du videregiver indstillingen overskrifter til csv.parse(). Dette springer den første række over. Indstil overskrifter til falsk hvis den første række i din CSV-fil ikke indeholder overskrifter.

Da CSV-filen læses en række ad gangen, skubber du hver række til dataarrayet. Når hele filen er læst, kan du manipulere indholdet af dataarrayet, som du vil.

Der er mere end én måde at parse en CSV på

CSV-filer er nyttige til lagring af store datasæt, fordi det er nemt at parse dem. I Node.js kan du bruge det indbyggede fs-modul eller NPM-pakker.

At bruge et bibliotek som fast-csv er meget nemmere og mere robust end at skrive din egen parsingkode manuelt. Nogle andre pakker til at parse CSV er csv-parser og papa parser.

En begynderguide til RESTful API'er i Node.js

Læs Næste

DelTweetDelE-mail

Relaterede emner

  • Programmering
  • Programmering
  • JavaScript

Om forfatteren

Mary Gathoni (18 artikler udgivet)

Mary Gathoni er en softwareudvikler med en passion for at skabe teknisk indhold, der ikke kun er informativt, men også engagerende. Når hun ikke koder eller skriver, nyder hun at hænge ud med venner og være udendørs.

Mere fra Mary Gathoni

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere