Как обернуть буфер в виде читаемого потока stream2?


Как я могу преобразовать узел.JS буфер в читаемый поток после использования интерфейса stream2 ?

Я уже нашел этот ответ и модуль stream-buffers, но этот модуль основан на интерфейсе stream1.

3 53

3 ответа:

с streamifier вы можете конвертировать строки и буферы в читаемые потоки с помощью нового API stream.

самый простой способ, вероятно, создать новый экземпляр потока PassThrough и просто вставить в него свои данные. Когда вы передаете его в другие потоки, данные будут извлечены из первого потока.

var stream = require('stream');

// Initiate the source
var bufferStream = new stream.PassThrough();

// Write your buffer
bufferStream.end(new Buffer('Test data.'));

// Pipe it to something else  (i.e. stdout)
bufferStream.pipe(process.stdout)

как предложил natevw, еще более идиоматично использовать stream.PassThrough и end это с буфером:

var buffer = new Buffer( 'foo' );
var bufferStream = new stream.PassThrough();
bufferStream.end( buffer );
bufferStream.pipe( process.stdout );

Это также, как буферы преобразуются / передаются ввинил-ФС.