在node.js 见到了不少次的, .pipe的用法,在gzip压缩的时候,要用,
还有 stream.pipe(destination, [options]) .
socket的的时候, socket.pipe(socket); 这句话的作用是什么?
请教,这些.pipe 有什么作用?
16 回复
没用过这个,大概是这样吧:
平时需要这样写的代码:
s1.on('data', function (chunk) {
s2.write(chunk);
});
s1.on('end', function (chunk) {
s2.end();
});
直接用pipe()这样就可以实现
s1.pipe(s2);
不知道理解对不对,请楼下指正
那nodejs.org 首页提供的,
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.listen(1337, '127.0.0.1');
socket.pipe(socket); 这一句有什么作用呢,他就一个socket 。
请教 @chishaxie
@xian366 就是客户端发神马数据过来,服务器就返回相同的数据嘛,这个自己试试就知道了。跟这个代码效果是一样的:
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.on('data', function (chunk) {
socket.write(chunk);
});
});
server.listen(1337, '127.0.0.1');pipe主要是使IO的流式(stream)操作更方便自然. 流式读写的最大好处一是省内存;二是精简代码. 推荐看看这篇文章http://docs.nodejitsu.com/articles/advanced/streams/what-are-streams