Nodejs stream vs sendFile

Gon*_*nys 4 node.js express

我正在测试下载速度res.sendFile(src);,fs.createReadStream(src).pipe(res);并且我没有看到太大的区别.哪个更好地提供文件,为什么?如果我有大文件,流会更好地处理它?

rob*_*lep 9

我会选择使用res.sendFile().

最终,res.sendFile()管道流res,所以在这方面它们基本相同.

但是,res.sendFile()有一些额外的东西,比如Content-Type根据文件名设置正确的HTTP 头,并且因为它使用send了引擎盖下它可以(可能,我没有测试过)处理部分响应并进行内容协商.

  • @TalKohavy 查看 Express 源代码 :D 而且,常识是:Express 在提供文件之前不会首先将整个文件读入内存。 (2认同)