我可以从 fs.createWriteStream() 获取缓冲区吗?
Posted
技术标签:
【中文标题】我可以从 fs.createWriteStream() 获取缓冲区吗?【英文标题】:Can I get the Buffer from fs.createWriteStream()? 【发布时间】:2020-02-08 16:45:59 【问题描述】:我有一个简单的问题 -
在我的例子中,我使用 archiver NPM 模块,它可以从 Buffer 创建档案。当此模块结束使用方法 archive.finalize() 时,我可能会从 archive.pipe(stream) 获得结果。我想要来自 fs.createWriteStream() 的 Buffer,我可以将其发送到 res.send() Express 方法。
let archive = archiver("zip",
zlib: level: 9 // Sets the compression level.
);
const stream = fs.createWriteStream(
"./src/backend/api/test.zip"
);
archive.pipe(stream);
archive.append(buffer, name: "test.csv" );
archive.finalize();
【问题讨论】:
【参考方案1】:如果我正确理解了您的问题,那可能会对您有所帮助
const stream = fs.createWriteStream(
"./src/backend/api/test.zip"
);
stream.on('data', (chunk) =>
//here u get every chunk as a buffer
)
stream.on('finish', () =>
//here your code if the stream is ending
)
【讨论】:
以上是关于我可以从 fs.createWriteStream() 获取缓冲区吗?的主要内容,如果未能解决你的问题,请参考以下文章
Node.js:检测到一个文件,用 fs.createWriteStream() 打开,被删除
fs.createWriteStream 不会立即创建文件?
使用 Fetch API 和 fs.createWriteStream 对文件进行流式响应