@vshvydky

Node.js fs. Как можно в потоке модифицировать данные?

Всем доброго дня, суть пблемы следующая, проводил разбор бигдаты и пушил данные в файл, забыл, что объекты json надо бы разделять между собой запятой, написал сие костыли:
let fs = require('fs');
let writer = fs.createWriteStream('data_valid.json', {flags: 'w'});
let reader = fs.createReadStream('data.json',
    {
        flags: 'r',
        encoding: 'utf8'
    });
writer.on('finish', function () {
    console.error('Запись выполнена успешно.');
});


reader.on('readable', function() {
    let buf;
    while ((buf = reader.read()) !== null) {

        writer.write(buf+',');

    }
});

Все бы хорошо, все объекты один за другим попадают в buf, но не происходит buf+','
Что я делаю не так?
Буду признателен за пояснения.
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Vovchikvoin
А хочу спросить в чем проблема просто копировать файл, вы же ничего более не делаете.
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Вы не завершаете поток записи и даже не флушаете его на диск, все данные остаются в оперативке и дохнут вместе с процессом
reader.on('end', () => writer.end());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы