Откажитесь от чанка в потоке 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
что может упростить реализацию.