Файлы CSV представляют собой простые текстовые файлы, которые очень легко создать в большинстве серверных систем. По большей части файлы CSV можно импортировать в любую базу данных и использовать практически в любой другой системе.

CSV использует очень простую и довольно плоскую схему — в основном это один плоский список полей.

CSV обычно более удобочитаем, чем XML или JSON.

И, честно говоря, он обратно совместим практически со всем. Редко бывает, что вам нужно развернуть собственный анализатор CSV или модуль записи CSV.

Предпосылка

В этой статье мы выведем CSV-файл, используя модуль Node.js с именем json2csv. Мы будем использовать json2csv, потому что это действительно простая в использовании библиотека — она может просто взять массив объектов и преобразовать их в корректный CSV-файл.

В этой статье я предполагаю, что у вас есть базовый опыт работы с JavaScript и ES6.

Шаг 1: Установите json2csv

В терминале/командной строке запустите npm i «json2csv»

В случае успеха это должно выглядеть примерно так:

Шаг 2: Обновите свой код, чтобы включить json2csv и, вероятно, потребуется основной модуль файлового потока (fs).

Из json2csv нам нужно ввести парсер, и мы будем использовать fs, чтобы позволить нам писать в файловый поток.

Шаг 3: Определите, какими должны быть наши заголовки в CSV

Самый простой способ определить, какими должны быть заголовки, — это, вероятно, посмотреть на один из объектов и получить свойства с помощью Object.keys().

Шаг 4: Разберите объект

Далее нам нужно насытить синтаксический анализатор и проанализировать объект. Это делается очень легко, просто вызывая новый Parser и передавая нужные заголовки.

Шаг 5: Запись в FileStream

Модуль файлового потока — это основной модуль, встроенный в Node.js. Он имеет асинхронные или синхронные методы, если хотите. В сегодняшнем примере я использую асинхронный метод.

Подведение итогов

json2csv — отличная библиотека для преобразования объекта или массива объектов в правильно сформированный CSV-файл без необходимости написания большого количества шаблонного кода.