美文网首页
【翻译】Node.js 教程 —— 管道

【翻译】Node.js 教程 —— 管道

作者: kyuan | 来源:发表于2018-12-11 22:37 被阅读36次

上节课使用了读写流进行读写数据,这种读写流的方式在 Node.js 中很常见。因此在 Node.js 中有更优雅的方法,就是使用管道 pipe

管道

管道可以为我们做同样的处理,接到读取流的数据自动将数据放到写入流中,省去了手动监听 data 事件的操作。

代码上保留读写流,差别是不在需要监听 data 事件,取而代之改为使用管道。

'app.js'
var fs = require('fs');

var readStream = fs.createReadStream(__dirname + '/readme.txt', 'utf-8');
var writeStream = fs.createWriteStream(__dirname + '/writeme.txt'); // 创建写入流

readStream.pipe(writeStream);

回到服务端代码,我们可以从文件里读取内容,使用管道将内容返回给客户端。

var http = require('http');

var server = http.createServer(function(req, res){
    var readStream = fs.createReadStream(__dirname + '/readme.txt', 'utf-8');

    res.writeHead(200, {
        'Content-Type': 'text/plain'
    });

    readStream.pipe(res); // 管道方式发送文本内容到客户端
});

server.listen(8888, '127.0.0.1'); // 监听本机上的 8888 端口

console.log('server is listening 8888');

下节课会讲如果发送 html 内容到客户端而不是文本内容。

相关文章

网友评论

      本文标题:【翻译】Node.js 教程 —— 管道

      本文链接:https://www.haomeiwen.com/subject/ptvshqtx.html