Откажитесь от чанка в потоке NodeJS Transform и прочитайте следующий

Как мне отбросить кусок в потоке преобразования NodeJS и прочитать следующий из предыдущего потока?

stream.on('data',function(data){}).pipe(rulesCheck).pipe(step1).pipe(step2).pipe(step3).pipe(insertDataIntoDB);

Я хотел бы отказаться от чанка, если он не соответствует определенным критериям в потоке ruleCheck.

2 ответа

Извините за тему некромантии. Добавление сюда на всякий случай, если кто-то еще будет искать то же самое.

      const stream = require('stream');

const check = new stream.Transform({
  transform(data, encoding, callback){
    // Discard if the string representation of the chunk is "abc"
    if(data.toString() === 'abc') callback(null, Buffer.alloc(0));
    else callback(null, data);
  },
});

check.pipe(process.stdout);
check.write('123');
check.write('4567');
check.write('abc');
check.write('defg\n');
check.end();

Напишите дуплексный поток и вставьте его посередине.

Чтобы упростить это, посмотрите на библиотеки как event-stream что может упростить реализацию.

Другие вопросы по тегам