Pliki CSV są wygodnym formatem do przechowywania danych i można ich używać w projektach Node.js do obsługi wszystkiego, od konfiguracji po nieprzetworzone dane. Mogą uprościć udostępnianie informacji między dwiema aplikacjami, nawet jeśli są napisane w różnych językach.
W Node.js możesz użyć kilku metod do odczytu i zapisu plików CSV.
Ten samouczek pokazuje, jak korzystać z fs moduł i szybki-csv Pakiet NPM do odczytu i zapisu plików CSV.
Konfiguracja projektu
Aby śledzić ten samouczek, upewnij się, że masz zainstalowany Node.js na swoim komputerze. Uruchom to polecenie, aby sprawdzić:
węzeł -v
Powinien zwrócić numer wersji. Jeśli nie masz zainstalowanego Node.js, postępuj zgodnie z instrukcjami w tym samouczek instalacji aby to zrobić.
W preferowanym katalogu utwórz nowy folder o nazwie parse-csv.
mkdir parse-csv
Nawigować do parsować-csv i utwórz nowy plik. Nazwij go parseCSV.js.
płyta CD parsować-csv
dotykaćparseCSV.js
Możesz teraz rozpocząć pracę z CSV.
Korzystanie z modułu fs
Moduł fs (skrót od systemu plików) zawiera kilka poleceń do interakcji z systemem plików w Node.js.
Przeczytaj cały plik na raz
ten czytajPlik() oraz odczytaj synchronizację pliku() komendy z fs moduł umożliwia odczytanie zawartości plików w Node.js. Różnica między tymi poleceniami polega na tym, że odczytaj synchronizację pliku() jest synchroniczny — blokuje wykonywanie innych skryptów JavaScript — while czytajPlik() jest asynchroniczny lub nieblokujący.
Ponieważ odczytywanie plików CSV może zająć trochę czasu, szczególnie w przypadku dużych plików, często lepiej jest użyć polecenia nieblokującego, czytajPlik(), jak pokazano niżej.
stały fs = wymagać('fs');
fs.odczytajPlik('csvdemo.csv', 'utf8', funkcja (błąd, dane) {
/* analizuj dane */
});
Jeśli nie masz przykładowego pliku CSV, możesz go wygenerować z kpina. Możesz również dowiedzieć się, jak utwórz plik CSV się.
Czytaj wiersz po wierszu
Chwila czytajPlik() działa, wymaga dużej ilości pamięci, ponieważ odczytuje cały plik CSV naraz. Jest to problem, zwłaszcza podczas pracy z dużymi plikami CSV. Alternatywą jest czytanie jednej linii na raz za pomocą fs.createReadStream() Komenda.
stały fs = wymagać("fs");
stały readline = wymagać("Czytaj linię");
const stream = fs.createReadStream("./csvdemo.csv");
stały rl = readline.createInterface({ Wejście: strumień });
pozwalać dane = [];r.wł.("linia", (wiersz) => {
dane.push (wiersz.split(","));
});
r.wł.("blisko", () => {
konsola.log (dane);
});
Tutaj przekazujesz nazwę pliku CSV do fs.createReadStream() aby utworzyć czytelny strumień. Strumienie umożliwiają pracę z dużymi ilościami danych, umożliwiając dostęp do nich porcjami.
Po utworzeniu czytelnego strumienia przekaż go do readline.createInterface() metoda. ten Czytaj linię Moduł zapewnia interfejs do odczytu danych w jednej linii na raz. Możesz teraz wypchnąć każdy wiersz do tablicy danych podczas jego odczytywania.
Zauważ jednak, że ten kod po prostu dzieli każdy wiersz przecinkami. Chociaż będzie to działać z najbardziej podstawowym plikiem CSV, format jest w rzeczywistości bardziej skomplikowany, niż sugeruje jego nazwa. Ręczne analizowanie plików CSV nie jest dobrym podejściem, zwłaszcza jeśli sam nie kontrolujesz danych. W większości sytuacji powinieneś używać biblioteki CSV.
Korzystanie z szybkiego csv
Aby niezawodnie analizować pliki CSV, możesz użyć biblioteki takiej jak szybki-csv, który jest dostępny jako pakiet npm. Ułatwia nie tylko odczytywanie plików CSV, ale także ich formatowanie.
Aby rozpocząć, zainicjuj npm i zainstaluj szybki-csv.
npm początek -y
npm i szybki-csv
Czytaj pliki CSV za pomocą fast-csv w następujący sposób.
stały fs = wymagać('fs')
stały csv = wymagać('szybki-csv');
stały dane = []
fs.createReadStream('./csvdemo.csv')
.rura(csv.analizować({ nagłówki: PRAWDA }))
.na('błąd', błąd => konsola.error (błąd))
.na('dane', wiersz => data.push (wiersz))
.na('koniec', () => console.log (dane));
W powyższym kodzie zacznij od utworzenia czytelnego strumienia z pliku CSV, a następnie połącz go z metodą parsowania z szybkiego CSV za pomocą rura(). Zauważ, że przekazujesz opcję nagłówków do csv.parse(). To pomija pierwszy wiersz. Ustaw nagłówki na fałszywy jeśli pierwszy wiersz pliku CSV nie zawiera nagłówków.
Ponieważ plik CSV jest odczytywany po jednym wierszu na raz, każdy wiersz jest umieszczany w tablicy danych. Po odczytaniu całego pliku możesz dowolnie manipulować zawartością tablicy danych.
Istnieje więcej niż jeden sposób na przeanalizowanie pliku CSV
Pliki CSV są przydatne do przechowywania dużych zestawów danych, ponieważ można je łatwo przeanalizować. W Node.js możesz skorzystać z wbudowanego modułu fs lub pakietów NPM.
Korzystanie z biblioteki takiej jak fast-csv jest znacznie łatwiejsze i bardziej niezawodne niż ręczne pisanie własnego kodu analizującego. Niektóre inne pakiety do parsowania CSV to csv-parser oraz papa parser.
Przewodnik dla początkujących po RESTful API w Node.js
Czytaj dalej
Powiązane tematy
- Programowanie
- Programowanie
- JavaScript
O autorze
Mary Gathoni jest programistą z pasją do tworzenia treści technicznych, które mają nie tylko charakter informacyjny, ale także angażują. Kiedy nie koduje ani nie pisze, lubi spędzać czas z przyjaciółmi i przebywać na świeżym powietrzu.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować