Nodejs 和 Streams - 详细概述?

发布于 2024-12-08 23:48:37 字数 307 浏览 0 评论 0原文

有人可以向我们(只有我吗?)解释一下如何在 Nodejs 中使用 Streams 吗?

这是此内容的后续内容:数据的压缩和解压缩在 Nodejs 中使用 zlib

我的主要兴趣是处理文件,但也处理字符串(即 Stream.toString() 和 String.toStream()...不是真正的函数...)

谢谢!

Could anyone please explain to us (just me?) how to use Streams in Nodejs?

This is a follow-up of this: Compression and decompression of data using zlib in Nodejs

And my main interest would be to work with files, but also strings (i.e. Stream.toString() and String.toStream()... not real function...)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诺曦 2024-12-15 23:48:37

流是 Node 中各种对象实现的抽象接口。例如,对 HTTP 服务器的请求是一个流,stdout 也是一个流。流是可读的、可写的或两者兼而有之。所有流都是 EventEmitter 的实例。 (Streams 文档)

这意味着 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 客户端。或者将上传流式传输到本地文件。发挥你的想象力。

A stream is an abstract interface implemented by various objects in Node. For example a request to an HTTP server is a stream, as is stdout. Streams are readable, writable, or both. All streams are instances of EventEmitter. (Streams Documentation)

This means a Stream is a useful object used by several Node core objects to read and/or write information. The core objects all use this to improve the way you can pipe information from one object to another. Since a Stream is an instance of an EventEmitter your code can be asynchronous and not stall while reading information from somewhere.

// 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);

Check stream.pipe.

For example, to stream a video to an HTTP client while reading it from a file. Or stream an upload to a local file. Use your imagination.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文