learnyounode文件服务器为什么把createReadStream()放在createServer()里面?

时间:2014-10-02 18:00:32

标签: javascript node.js

这两个片段都有效。唯一的区别是呼叫的位置 fs.createReadStream()。

在我看来,调用一次并将结果分配给它会更有效 一个var,而不是在每个请求上调用它。

我的想法有什么问题?

learnyounode提供的答案:它比我的好吗?如果是这样,为什么?

    var server = http.createServer(function(req, res) {
      res.writeHead(200, {
        'content-type': 'text/plain'
      });

      fs.createReadStream(process.argv[3]).pipe(res)
    });

我的回答?

var src = fs.createReadStream(process.argv[3])

server = http.createServer(function(request, response) {
  res.writeHead(200, {
    'content-type': 'text/plain'
  })
  src.pipe(response);
});

1 个答案:

答案 0 :(得分:2)

回答我自己的问题。我的代码只运行一次,而不是两次,因为目标消耗了流对象。