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.
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
Argomenti correlati
- Programmazione
- Programmazione
- JavaScript
Circa l'autore
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.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti