Для построчной обработки вещей мне кажется, что вам понадобится другой модуль CSV, который поддерживает инкрементальный анализ потока и выводит фактические Javascript объекты построчно (вы хотите javascript объекты, а не JSON) ,
На NPM имеется тонна CSV-модулей, многие из которых имеют некоторый уровень поддержки потоков. Этот cvs-reader
, кажется, предлагает правильные возможности и работает для меня в простой демонстрационной программе. Я уверен, что есть и другие модули с аналогичными возможностями.
Вот рабочая демонстрация cvs-reader.
const fs = require('fs');
const csvReader = require('csv-reader');
// All of these arguments are optional.
const options = {
skipEmptyLines: true,
asObject: true, // convert data to object
parseNumbers: true,
parseBooleans: true,
trim: true
};
const csvStream = new csvReader(options);
const readStream = fs.createReadStream('example.csv', 'utf8');
readStream.on('error', err => {
console.log(err);
csvStream.destroy(err);
}).pipe(csvStream).on('error', err => {
console.error(err);
}).on('data', (data) => {
// outputs an object containing a set of key/value pair representing a line found in the csv file.
console.log(data); // {firstname: "John", lastname: "Bundy", state: "CA"}
}).on('end', () => {
console.log('done');
});