【发布时间】:2017-09-24 11:55:48
【问题描述】:
我正在从 nodeschool.io (learnyounode) 做 node.js 练习。其中一个练习涉及创建一个 http 服务器,该服务器从可读文件流中提供文本文件。我对异步编程很陌生。我想出的解决方案是:
var http = require('http');
var fs = require('fs');
var readable = fs.createReadStream(process.argv[3]);
var server = http.createServer(function(request, response) {
readable.on('data', function(chunk) {
response.write(chunk);
})
});
server.listen(process.argv[2]);
这可行,但官方解决方案使用管道而不是 on-data 事件:
var http = require('http')
var fs = require('fs')
var server = http.createServer(function (req, res) {
res.writeHead(200, { 'content-type': 'text/plain' })
fs.createReadStream(process.argv[3]).pipe(res);
})
server.listen(Number(process.argv[2]))
这两种方法的(潜在)差异和/或好处是什么?
【问题讨论】:
标签: javascript node.js asynchronous stream fs