CSV файловете са удобен формат за съхранение на данни и можете да ги използвате във вашите Node.js проекти, за да обработвате всичко - от конфигурация до необработени данни. Те могат да опростят споделянето на информация между две приложения, дори ако са написани на различни езици.

В Node.js можете да използвате няколко метода за четене и записване на CSV файлове.

Този урок ви показва как да използвате fs модул и fast-csv NPM пакет за четене и записване на CSV файлове.

Настройка на проекта

За да следвате този урок, уверете се, че имате инсталиран Node.js на вашата машина. Изпълнете тази команда, за да проверите:

възел -v

Трябва да върне номер на версията. Ако нямате инсталиран Node.js, следвайте инструкциите в това инструкция за инсталиране да го направи.

В предпочитаната от вас директория създайте нова папка с име parse-csv.

mkdir parse-csv

Навигирайте до parse-csv и създайте нов файл. Наименувайте го parseCSV.js.

cd parse-csv
докосванеparseCSV.js

Вече можете да започнете да работите с CSV.

Използване на модула fs

instagram viewer

Модулът fs (съкратено от файлова система) съдържа няколко команди за взаимодействие с файловата система в Node.js.

Прочетете целия файл наведнъж

В readFile() и readFileSync() команди от fs модул ви позволява да четете съдържанието на файла в Node.js. Разликата между тези команди е, че readFileSync() е синхронен — той блокира изпълнението на друг JavaScript — докато readFile() е асинхронен или неблокиращ.

Тъй като четенето на CSV файлове може да отнеме малко време, особено за големи файлове, често е по-добре да използвате неблокиращата команда, readFile(), както е показано по-долу.

const fs = изискват('fs');

fs.readFile('csvdemo.csv', 'utf8', функция (грешка, данни) {
/* анализиране на данни */
});

Ако нямате примерен CSV файл, можете да генерирате такъв от mockaroo. Можете също да научите как да създайте CSV файл себе си.

Четете ред по ред

Докато readFile() работи, изисква интензивна памет, тъй като чете целия CSV файл наведнъж. Това е проблем, особено при работа с големи CSV файлове. Алтернатива е да четете един ред наведнъж, като използвате fs.createReadStream() команда.

const fs = изискват("fs");
const readline = изискват("readline");
const поток = fs.createReadStream("./csvdemo.csv");
const rl = readline.createInterface({ вход: поток });
позволявам данни = [];

rl.on("линия", (ред) => {
data.push (row.split(","));
});

rl.on("близо", () => {
конзола.log (данни);
});

Тук предавате името на CSV файла на fs.createReadStream() за да създадете четим поток. Потоците ви позволяват да работите с големи количества данни, като ви позволяват да имате достъп до тях на парчета.

След като създадете четливия поток, го предайте на readline.createInterface() метод. В readline модулът предоставя интерфейс за четене на данните един ред в даден момент. Вече можете да натискате всеки ред към масива от данни, докато се чете.

Имайте предвид обаче, че този код просто разделя всеки ред на запетаи. Въпреки че това ще работи с най-основния CSV файл, форматът всъщност е по-сложен, отколкото подсказва името му. Ръчното анализиране на CSV файлове не е стабилен подход, особено ако не контролирате сами данните. В повечето ситуации трябва да използвате CSV библиотека.

Използване на fast-csv

За да анализирате надеждно CSV файлове, можете да използвате библиотека като fast-csv, който се предлага като npm пакет. Това улеснява не само четенето на CSV файлове, но и тяхното форматиране.

За да започнете, инициализирайте npm и инсталирайте fast-csv.

npm init -y
npm i fast-csv

Прочетете CSV файлове, като използвате fast-csv, както следва.

const fs = изискват('fs')
const csv = изискват('fast-csv');
const данни = []

fs.createReadStream('./csvdemo.csv')
.тръба(csv. анализирайте({ заглавки: вярно }))
.На('грешка', грешка => console.error (грешка))
.На('данни', ред => data.push (ред))
.На('край', () => console.log (данни));

В горния код започнете със създаване на четим поток от CSV файла, след което го свържете с метода за синтактичен анализ от бърз CSV, като използвате тръба(). Имайте предвид, че предавате опцията за заглавки на csv.parse(). Това пропуска първия ред. Задайте заглавки на фалшиво ако първият ред на вашия CSV файл не съдържа заглавки.

Тъй като CSV файлът се чете един ред наведнъж, вие натискате всеки ред към масива от данни. След като целият файл бъде прочетен, можете да манипулирате съдържанието на масива от данни, както желаете.

Има повече от един начин за анализиране на CSV

CSV файловете са полезни за съхраняване на големи набори от данни, защото е лесно да ги анализирате. В Node.js можете да използвате вградения модул fs или NPM пакети.

Използването на библиотека като fast-csv е много по-лесно и по-стабилно, отколкото ръчно писане на собствен код за синтактичен анализ. Някои други пакети за синтактичен анализ на CSV са csv-парсер и татко парсер.

Ръководство за начинаещи за RESTful API в Node.js

Прочетете Следващото

ДялтуитДялелектронна поща

Свързани теми

  • Програмиране
  • Програмиране
  • JavaScript

За автора

Мери Гатони (публикувани 18 статии)

Мери Гатони е разработчик на софтуер със страст за създаване на техническо съдържание, което е не само информативно, но и ангажиращо. Когато не кодира или пише, тя обича да излиза с приятели и да е на открито.

Още от Mary Gathoni

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате