Как я могу анализировать записи по требованию с Node.js?
Существует ли модуль Node, который может анализировать определенное количество записей из файла CSV? Вариант использования заключается в том, чтобы проанализировать большой файл журнала и доставить записи клиенту подкачки по запросу.
node-csv пока не может этого сделать, и самое близкое, что я нашел, - это читать строки одну за другой, что требует переизобретения колеса синтаксического анализа CSV и будет прерывать многострочные записи.
Но давайте опустим планку: как я могу анализировать однострочные CSV-записи одну за другой с Node.js? Довольно тривиальная задача для большинства других языков.
2 ответа
Насколько я понимаю, вы просто хотите разобрать строку значений через запятую в массив? Если так, попробуйте это:
Разбор единственной строки (которая также может иметь встроенные символы новой строки):
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);
});