CSV-filer är ett bekvämt datalagringsformat, och du kan använda dem i dina Node.js-projekt för att hantera allt från konfiguration till rådata. De kan förenkla informationsdelningen mellan två appar, även om de är skrivna på olika språk.

I Node.js kan du använda flera metoder för att läsa och skriva CSV-filer.

Denna handledning visar hur du använder fs modul och snabb-csv NPM-paket för att läsa och skriva CSV-filer.

Projektuppsättning

För att följa med i denna handledning, se till att du har Node.js installerat på din maskin. Kör detta kommando för att kontrollera:

nod -v

Det bör returnera ett versionsnummer. Om du inte har Node.js installerat, följ instruktionerna i detta installationshandledning att göra så.

Skapa en ny mapp med namnet parse-csv i din föredragna katalog.

mkdir parse-csv

Navigera till parse-csv och skapa en ny fil. Döp det till parseCSV.js.

CD parse-csv
RörparseCSV.js

Du kan nu börja arbeta med CSV.

Använda fs-modulen

Modulen fs (förkortning för filsystem) innehåller flera kommandon för att interagera med filsystemet i Node.js.

instagram viewer

Läs hela filen på en gång

De readFile() och readFileSync() kommandon från fs modul gör att du kan läsa filinnehåll i Node.js. Skillnaden mellan dessa kommandon är att readFileSync() är synkront – det blockerar annat JavaScript från att köras – medan readFile() är asynkron eller icke-blockerande.

Eftersom det kan ta lite tid att läsa CSV-filer, särskilt för stora filer, är det ofta bättre att använda kommandot icke-blockerande, readFile(), enligt nedanstående.

konst fs = behöva('fs');

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

Om du inte har en exempel-CSV-fil kan du skapa en från mockaroo. Du kan också lära dig hur man gör skapa en CSV-fil själv.

Läs rad för rad

Medan readFile() fungerar, det är minneskrävande eftersom det läser hela CSV-filen på en gång. Detta är ett problem, särskilt när man arbetar med stora CSV-filer. Ett alternativ är att läsa en rad i taget med hjälp av fs.createReadStream() kommando.

konst fs = behöva("fs");
konst läsrad = behöva("läsrad");
const stream = fs.createReadStream("./csvdemo.csv");
konst rl = readline.createInterface({ inmatning: ström });
låta data = [];

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

rl.on("stänga", () => {
trösta.log (data);
});

Här skickar du CSV-filnamnet till fs.createReadStream() för att skapa en läsbar ström. Strömmar låter dig arbeta med stora mängder data genom att du kan komma åt den i bitar.

När du har skapat den läsbara strömmen skickar du den till readline.createInterface() metod. De läslinje modulen tillhandahåller ett gränssnitt för att läsa data en rad i taget. Du kan nu skjuta varje rad till datamatrisen när den läses.

Observera dock att den här koden helt enkelt delar upp varje rad med kommatecken. Även om detta kommer att fungera med den mest grundläggande CSV-filen, är formatet faktiskt mer komplicerat än vad namnet antyder. Att analysera CSV-filer manuellt är inte ett robust tillvägagångssätt, särskilt om du inte har kontroll över data själv. I de flesta situationer bör du använda ett CSV-bibliotek.

Använder snabb-csv

För att analysera CSV-filer på ett tillförlitligt sätt kan du använda ett bibliotek som snabb-csv, som är tillgängligt som ett npm-paket. Det gör det lättare att inte bara läsa CSV-filer utan även formatera dem.

Initiera för att komma igång npm och installera snabb-csv.

npm init -y
npm i fast-csv

Läs CSV-filer med snabb-csv enligt följande.

konst fs = behöva('fs')
konst csv = behöva('snabb-csv');
konst data = []

fs.createReadStream('./csvdemo.csv')
.rör(csv.parse({ rubriker: Sann }))
.på('fel', fel => console.error (fel))
.på('data', rad => data.push (rad))
.på('slutet', () => console.log (data));

I ovanstående kod, börja med att skapa en läsbar ström från CSV-filen och anslut den sedan till analysmetoden från snabb CSV med rör(). Observera att du skickar rubrikalternativet till csv.parse(). Detta hoppar över den första raden. Ställ in rubriker till falsk om den första raden i din CSV-fil inte innehåller rubriker.

Eftersom CSV-filen läses en rad i taget, skjuter du varje rad till datamatrisen. Efter att hela filen har lästs kan du manipulera innehållet i datamatrisen som du vill.

Det finns mer än ett sätt att analysera en CSV

CSV-filer är användbara för att lagra stora datamängder eftersom det är lätt att analysera dem. I Node.js kan du använda den inbyggda fs-modulen eller NPM-paket.

Att använda ett bibliotek som fast-csv är mycket enklare och mer robust än att skriva din egen analyskod manuellt. Vissa andra paket för att analysera CSV är csv-parser och pappa parser.

En nybörjarguide till RESTful API: er i Node.js

Läs Nästa

Dela med sigTweetDela med sigE-post

Relaterade ämnen

  • Programmering
  • Programmering
  • JavaScript

Om författaren

Mary Gathoni (18 artiklar publicerade)

Mary Gathoni är en mjukvaruutvecklare med en passion för att skapa tekniskt innehåll som inte bara är informativt utan också engagerar. När hon inte kodar eller skriver tycker hon om att umgås med vänner och att vara utomhus.

Mer från Mary Gathoni

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera