Node.js Stream 模块
实例
写入可写流:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Hello World!');
res.end();
}).listen(8080);
定义与用法
Stream
模块提供了一种处理流数据的方法。
有两种类型的流:可读(Readable)和可写(Writable)。
可读流的一个例子是使用 http.createServer() 方法时得到的 response 响应对象。
可写流的一个例子是使用 http.createServer() 方法时得到的 request 请求对象。
语法
有些方法返回可读/可写的流对象,如 http.createServer(),如果是这种情况,则不必引入流模块。
否则,在应用程序中引入流模块的语法:
var stream = require('stream');
Readable 可读流属性与方法
方法 | 描述 |
---|---|
isPaused() | 如果可读流的状态已暂停,则返回 true,否则返回 false |
pause() | 暂停可读流 |
pipe() | 将可读流转换为指定的可写流 |
read() | 返回可读流的指定部分 |
resume() | 恢复暂停的流 |
setEncoding() | 设置可读流的字符编码 |
unpipe() | 在使用 pipe() 后,停止将可读流转换为可写流 |
unshift() | 将某些指定的数据推回内部缓冲区 |
wrap() | 帮助读取旧版本 Node.js 生成的流 |
Writable 可写流属性与方法
方法 | 描述 |
---|---|
cork() | 停止可写流,所有写入的数据将在内存中缓存 |
end() | 结束可写流 |
setDefaultEncoding() | 设置可写流的编码 |
uncork() | 刷新自调用 cork() 方法以来已缓冲的所有数据 |
write() | 将数据写入流 |