学习node文件服务器为什么将createReadStream()放入createServer()中

learnyounode file server why put createReadStream() inside createServer()?

本文关键字:放入 createServer createReadStream node 文件服务器 为什么 学习      更新时间:2023-09-26

这两个片段都能工作。唯一的区别是呼叫的位置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);
});

回答我自己的问题。我的代码只工作一次,而不是两次,因为流对象会被目的地消耗掉。