我正在使用exceljs生成excel文件(使用它的流功能)。我不想將文件保存在服務器上,然後讀取並返回它,我想直接將exceljs流傳輸到hapijs中的響應。如何管exceljs流以在hapijs中回覆
function(request, reply) {
const options = {
stream: reply, // I need to somehow declare the reply stream here
useStyles: false,
useSharedStrings: true
};
const workbook = new Excel.stream.xlsx.WorkbookWriter(options);
workbook.addWorksheet('Test');
const worksheet = workbook.getWorksheet('Test');
worksheet.columns = [{
header: 'product', key: 'product'
}];
worksheet.addRow({product: 'MyProduct'}).commit();
worksheet.commit();
workbook.commit();
這可能嗎?我無法像expressjs那樣直接將答覆傳遞給Exceljs流的選項?有什麼想法嗎?
回覆可以返回一個流,但我會將exceljs邏輯封裝在您自己的流式接口中,您可以將它傳遞給hapi的回覆接口,我使用了模塊** [j](https://www.npmjs.com/package/j)**來實現這一點。看看[這個](https://github.com/circabs/xl-json)模塊來顯示你如何打包一個流,在我的例子中它是從excel轉換到json –