Nodejs and Streams - подробный обзор? - PullRequest
4 голосов
/ 11 октября 2011

Может ли кто-нибудь объяснить нам (только мне?), Как использовать потоки в Nodejs?

Это продолжение этого: Сжатие и распаковка данных с использованием zlib в Nodejs

И мой основной интерес будет работать с файлами, но также и со строками (то есть Stream.toString () и String.toStream () ... не настоящая функция ...)

Спасибо!

1 Ответ

4 голосов
/ 12 октября 2011

Поток - это абстрактный интерфейс, реализованный различными объектами в Node.Например, запрос к HTTP-серверу является потоком, как и stdout.Потоки доступны для чтения, записи или того и другого.Все потоки являются экземплярами EventEmitter.( Документация по потокам )

Это означает, что Stream - это полезный объект, используемый несколькими базовыми объектами Node для чтения и / или записи информации.Все основные объекты используют это, чтобы улучшить способ передачи информации от одного объекта к другому.Поскольку Stream является экземпляром EventEmitter, ваш код может быть асинхронным и не останавливаться при чтении информации откуда-либо.

// imagine 'response' is the output Stream from a client connection
var video = fs.createReadStream("/path/to/video.mpg");
// pipe video to response (while data is being read asynchronously)
video.pipe(response);

Проверьте stream.pipe .

ДляНапример, для потоковой передачи видео на HTTP-клиент при чтении его из файла.Или потоковую загрузку в локальный файл.Используйте свое воображение.

...