我使用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密集型的東西,像這樣的節點是值得商榷的 –