Как я могу анализировать записи по требованию с Node.js?

Существует ли модуль Node, который может анализировать определенное количество записей из файла CSV? Вариант использования заключается в том, чтобы проанализировать большой файл журнала и доставить записи клиенту подкачки по запросу.

node-csv пока не может этого сделать, и самое близкое, что я нашел, - это читать строки одну за другой, что требует переизобретения колеса синтаксического анализа CSV и будет прерывать многострочные записи.

Но давайте опустим планку: как я могу анализировать однострочные CSV-записи одну за другой с Node.js? Довольно тривиальная задача для большинства других языков.

2 ответа

Насколько я понимаю, вы просто хотите разобрать строку значений через запятую в массив? Если так, попробуйте это:

https://npmjs.org/package/csvrow

Разбор единственной строки (которая также может иметь встроенные символы новой строки):

var csv = require('csv'); // node-csv

csv()
  .from.string(SINGLE_LINE_OF_CSV)
  .to.array(function(record) {
    console.log('R', record);
  });

Я не уверен, что вы подразумеваете под "определенным количеством записей из файла CSV", или в чем проблема. Как только вы прочитаете нужную сумму, просто отправьте ответ клиенту, и все готово.

РЕДАКТИРОВАТЬ: если вы хотите реализовать пейджинг, вы можете использовать node-csv тоже:

var csv   = require('csv');
var skip  = 100;
var limit = 10;

csv()
  .from.path('file.csv')
  .on('record', function(row, index) {
    if (index >= skip && index < (skip + limit))
      console.log('R', index);
  });
Другие вопросы по тегам