我使用Exceljs快速创建Excel数据如何从可写入的流中创建可读流? (Node.js)
我想在内存中缓存这个东西,然后使用Koa将其发送给用户。
为Exceljs的write
方法需要一个writableStream:
workbook.xlsx.write(writableStream, options)
BUT兴亚期望一个可读流:
response.body = readableStream
我知道可以通过管道将可读流引入可写的流,但我怎么做相反?我希望Exceljs写入可写入流并让Koa从同一个流中读取。我非常沮丧的Stream API!
在其他的20两件事,我尝试这样做:
const ReadableStream = require("memory-streams").ReadableStream
const reader = new ReadableStream()
const writer = new stream.Writable({
write: function(chunk, encoding, next) {
console.log(chunk.toString())
// reader.push(chunk, encoding)
next()
}
})
const reader = new MemoryStream(null, {readable: true})
// reader.write = reader.unshift
const writer = reader
workbook.xlsx.write(writer, {})
return reader
但它不工作,我得到一些奇怪的错误有关无法写入时关闭的流。即使我处理了错误,但是,我的Excel文件无法打开。
那么如何从可写入的流中创建可读流呢?
最大使用流,做CPU密集型的东西,像这样的节点是值得商榷的 –