我有一段代码,其中 NodeJS 服务器读取文件并将其流式传输以响应,它看起来像:
var fStream = fs.createReadStream(filePath, {'bufferSize': 128 * 1024});
fStream.pipe(response);
问题是,Node 每次准确读取文件 40960 字节。但是,如果一次读取 131072 (128 * 1024) 字节,我的应用程序会更有效率(由于不适用于此问题的原因)。
有没有办法强制 Node 一次读取 128 * 1024 字节?
最佳答案
接受的答案是错误的。您可以使用 highWaterMark 选项强制 Node 一次读取 (128*1024) 个字节。
var fStream = fs.createReadStream('/foo/bar', { highWaterMark: 128 * 1024 });
Documentation特别指出,可能缓冲的数据量取决于传递给流构造函数的 highWaterMark 选项。对于普通流,highWaterMark 选项指定总字节数。对于以对象模式运行的流,highWaterMark 指定了对象总数。'
另请参阅 this .默认缓冲区大小为 64 KB
关于node.js - NodeJS ReadStream 一次不读取 bufferSize 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11784172/