Node.js 网络、套接字与安全开发指南
1. 流与管道操作
在 Node.js 中,流操作是处理数据的重要方式。例如,将文件压缩并传输到服务器的代码如下:
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// stream gzipped file to server
var readable = fs.createReadStream('./test.png');
readable.pipe(gzip).pipe(req);
客户端打开待压缩的文件,通过管道将其传输到 Zlib 压缩转换流,再将结果传输到网络请求(可写流)。这里纯粹使用流,所以可以利用之前提到的 pipe() 功能。但在服务器端不能这样使用,因为数据是以缓冲区块的形式传输的。
另外,缓冲文件到内存可能会导致扩展性问题,另一种方法是保存未压缩的文件,进行解压缩,然后删除临时的未压缩文件,这可以作为一个额外的练习。
2. 管道与 ReadLine 模块
在之前的操作中,我们多次使用了管道。一个简单的管道示例是在 REPL 会话中输入以下内容:
> process.stdin.resume();
> process.stdin.pipe(process.stdout);
<
超级会员免费看
订阅专栏 解锁全文
864

被折叠的 条评论
为什么被折叠?



