Мне нужно взять последовательность массива json objects 20Mb, поток в поток, разбить на меньшие массивы из 33 элементов, преобразовать их в html и затем передать в другой поток (для преобразования PDF).Прочитайте и обработайте мелкие куски внутри дуплексного потока в узле
Дело в том, что я не совсем понял, как работают потоки узлов. Я пытаюсь решить его с помощью дуплексного потока, но я не знаю, как объединить входящие фрагменты из верхнего потока и отправить их по частям в поток вниз. В этом коде
jsonReader = fs.createReadStream 'source.json'
class Convert extends Duplex
constructor: ->
super readableObjectMode: true
# Duplex.call @, readableObjectMode: true
@buffer = []
_read: (lines) ->
console.log "buffer #{@buffer.length}"
if @buffer.length is 0
@push null
else
console.log "lines: #{lines}"
page = @buffer.slice 0, 33
console.log page.length
@buffer.splice 0, 33
@push page
_write: (data, enconding, next) ->
@buffer.push data
next()
convert = new Convert()
jsonReader.pipe(convert).pipe(process.stdout)
@ buffer всегда пуст. Где узел хранит куски, поступающие из верхних потоков?