I file CSV sono un comodo formato di archiviazione dati e puoi usarli nei tuoi progetti Node.js per gestire qualsiasi cosa, dalla configurazione ai dati grezzi. Possono semplificare la condivisione di informazioni tra due app, anche se sono scritte in lingue diverse.

In Node.js puoi utilizzare diversi metodi per leggere e scrivere file CSV.

Questo tutorial ti mostra come usare il fs modulo e veloce-csv Pacchetto NPM per leggere e scrivere file CSV.

Configurazione del progetto

Per seguire questo tutorial, assicurati di avere Node.js installato sul tuo computer. Esegui questo comando per verificare:

nodo -v

Dovrebbe restituire un numero di versione. Se non hai installato Node.js, segui le istruzioni in questo tutorial di installazione fare così.

Nella tua directory preferita, crea una nuova cartella denominata parse-csv.

mkdir parse-csv

Navigare verso parse-csv e crea un nuovo file. Denominalo parseCSV.js.

CD parse-csv
toccoparseCSV.js

Ora puoi iniziare a lavorare con CSV.

Utilizzando il modulo fs

Il modulo fs (abbreviazione di file system) contiene diversi comandi per interagire con il file system in Node.js.

instagram viewer

Leggi l'intero file in una volta

Il leggiFile() e readFileSync() comandi dal fs modulo ti consente di leggere il contenuto del file in Node.js. La differenza tra questi comandi è che readFileSync() è sincrono, blocca l'esecuzione di altri JavaScript, mentre leggiFile() è asincrono o non bloccante.

Poiché la lettura dei file CSV può richiedere un po' di tempo, soprattutto per file di grandi dimensioni, spesso è meglio utilizzare il comando non bloccante, leggiFile(), come mostrato di seguito.

cost fs = richiedere('fs');

fs.readFile('csvdemo.csv', 'utf8', funzione (err, dati) {
/* analizza i dati */
});

Se non disponi di un file CSV di esempio, puoi generarne uno da mockaro. Puoi anche imparare a farlo creare un file CSV te stesso.

Leggi riga per riga

Mentre leggiFile() funziona, richiede molta memoria poiché legge l'intero file CSV tutto in una volta. Questo è un problema, soprattutto quando si lavora con file CSV di grandi dimensioni. Un'alternativa è leggere una riga alla volta usando il fs.createReadStream() comando.

cost fs = richiedere("fs");
cost riga di lettura = richiedere("linea di lettura");
const stream = fs.createReadStream("./csvdemo.csv");
cost rl = readline.createInterface({ ingresso: flusso });
permettere dati = [];

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

rl.on("chiudere", () => {
consolle.log (dati);
});

Qui stai passando il nome del file CSV a fs.createReadStream() per creare un flusso leggibile. Gli stream ti consentono di lavorare con grandi quantità di dati consentendoti di accedervi in ​​blocchi.

Una volta creato il flusso leggibile, passalo a readline.createInterface() metodo. Il linea di lettura il modulo fornisce un'interfaccia per la lettura dei dati una riga alla volta. Ora puoi eseguire il push di ogni riga nell'array di dati mentre viene letta.

Nota, tuttavia, che questo codice divide semplicemente ogni riga su virgole. Sebbene funzioni con il file CSV più semplice, il formato è in realtà più complicato di quanto suggerisca il nome. L'analisi manuale dei file CSV non è un approccio affidabile, soprattutto se non hai il controllo dei dati da solo. Per la maggior parte delle situazioni, dovresti usare una libreria CSV.

Usando fast-csv

Per analizzare i file CSV in modo affidabile, puoi utilizzare una libreria come veloce-csv, disponibile come pacchetto npm. Semplifica non solo la lettura dei file CSV, ma anche la formattazione.

Per iniziare, inizializza npm e installa veloce-csv.

npm init -y
npm i fast-csv

Leggi i file CSV usando fast-csv come segue.

cost fs = richiedere('fs')
cost csv = richiedere('fast-csv');
cost dati = []

fs.createReadStream('./csvdemo.csv')
.tubo(csv.analisi({ intestazioni: VERO }))
.su('errore', errore => console.error (errore))
.su('dati', riga => data.push (riga))
.su('fine', () => console.log (dati));

Nel codice precedente, inizia creando un flusso leggibile dal file CSV, quindi collegalo al metodo di analisi da CSV veloce utilizzando tubo(). Nota che stai passando l'opzione delle intestazioni a csv.parse(). Questo salta la prima riga. Imposta le intestazioni su falso se la prima riga del file CSV non contiene intestazioni.

Poiché il file CSV viene letto una riga alla volta, si esegue il push di ciascuna riga nell'array di dati. Dopo aver letto l'intero file, puoi manipolare il contenuto dell'array di dati come desideri.

C'è più di un modo per analizzare un CSV

I file CSV sono utili per archiviare set di dati di grandi dimensioni perché è facile analizzarli. In Node.js, puoi usare il modulo fs integrato o i pacchetti NPM.

L'uso di una libreria come fast-csv è molto più semplice e più robusto rispetto alla scrittura manuale del proprio codice di analisi. Alcuni altri pacchetti per l'analisi CSV sono csv-parser e parser di papà.

Una guida per principianti alle API RESTful in Node.js

Leggi Avanti

CondividereTwittaCondividereE-mail

Argomenti correlati

  • Programmazione
  • Programmazione
  • JavaScript

Circa l'autore

Maria Gatoni (18 articoli pubblicati)

Mary Gathoni è una sviluppatrice di software con la passione per la creazione di contenuti tecnici non solo informativi ma anche coinvolgenti. Quando non sta programmando o scrivendo, le piace uscire con gli amici e stare all'aria aperta.

Altro da Mary Gathoni

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti