Файлы CSV — это удобный формат хранения данных, и вы можете использовать их в своих проектах Node.js для обработки любых данных, от конфигурации до необработанных данных. Они могут упростить обмен информацией между двумя приложениями, даже если они написаны на разных языках.
В Node.js вы можете использовать несколько методов для чтения и записи CSV-файлов.
В этом руководстве показано, как использовать фс модуль и быстрый CSV Пакет NPM для чтения и записи файлов CSV.
Настройка проекта
Чтобы следовать этому руководству, убедитесь, что на вашем компьютере установлен Node.js. Запустите эту команду, чтобы проверить:
узел -v
Он должен вернуть номер версии. Если у вас не установлен Node.js, следуйте инструкциям в этом учебник по установке сделать это.
В предпочитаемом вами каталоге создайте новую папку с именем parse-csv.
mkdir синтаксический анализ-csv
Перейдите к синтаксический анализ-csv и создайте новый файл. Назовите его parseCSV.js.
компакт диск синтаксический анализ-csv
трогатьparseCSV.js
Теперь вы можете начать работать с CSV.
Использование модуля ФС
Модуль fs (сокращение от файловой системы) содержит несколько команд для взаимодействия с файловой системой в Node.js.
Читать весь файл сразу
читатьФайл() и чтениеФайлСинхронизация() команды из фс Модуль позволяет читать содержимое файла в Node.js. Разница между этими командами в том, что чтениеФайлСинхронизация() является синхронным — он блокирует выполнение другого JavaScript — в то время как читатьФайл() является асинхронным или неблокирующим.
Поскольку чтение CSV-файлов может занять некоторое время, особенно для больших файлов, часто лучше использовать неблокирующую команду, читатьФайл(), как показано ниже.
константа фс = требовать("фс");
fs.readFile('csvdemo.csv', 'utf8', функция (ошибка, данные) {
/* анализ данных */
});
Если у вас нет образца CSV-файла, вы можете создать его из пародия. Вы также можете узнать, как создать CSV-файл самим собой.
Читать построчно
Пока читатьФайл() работает, он потребляет много памяти, так как считывает весь файл CSV сразу. Это проблема, особенно при работе с большими CSV-файлами. Альтернативой является чтение по одной строке с помощью fs.createReadStream() команда.
константа фс = требовать("фс");
константа строка чтения = требовать("чтение");
постоянный поток = fs.createReadStream("./csvdemo.csv");
константа rl = readline.createInterface({ вход: поток });
позволять данные = [];рл.он("линия", (строка) => {
data.push(row.split(","));
});
рл.он("Закрыть", () => {
консоль.log (данные);
});
Здесь вы передаете имя файла CSV в fs.createReadStream() для создания читаемого потока. Потоки позволяют работать с большими объемами данных, предоставляя доступ к ним фрагментами.
Как только вы создадите читаемый поток, передайте его readline.createInterface() метод. строка чтения Модуль предоставляет интерфейс для чтения данных по одной строке за раз. Теперь вы можете помещать каждую строку в массив данных по мере ее чтения.
Обратите внимание, однако, что этот код просто разделяет каждую строку запятыми. Хотя это будет работать с самым простым файлом CSV, формат на самом деле сложнее, чем следует из его названия. Анализ файлов CSV вручную не является надежным подходом, особенно если вы не контролируете данные самостоятельно. В большинстве случаев следует использовать библиотеку CSV.
Использование быстрого CSV
Для надежного анализа файлов CSV вы можете использовать библиотеку, например быстрый CSV, который доступен в виде пакета npm. Это упрощает не только чтение CSV-файлов, но и их форматирование.
Для начала инициализируйте нпм и установить быстрый CSV.
инициализация npm -y
npm и быстрый CSV
Считайте файлы CSV с помощью fast-csv следующим образом.
константа фс = требовать("фс")
константа CSV = требовать(«быстрый CSV»);
константа данные = []
fs.createReadStream('./csvdemo.csv')
.трубка(CSV.parse({ заголовки: истинный }))
.на('ошибка', ошибка => 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
Об авторе
Мэри Гатони — разработчик программного обеспечения, страстно любящий создавать технический контент, который не только информативен, но и привлекателен. Когда она не программирует и не пишет, ей нравится проводить время с друзьями и гулять на свежем воздухе.
Подпишитесь на нашу рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться