Не некорректно отрабатывает post ответ в express.js.
На post /download/excel я хочу создавать excel файл, запаковать в архив и передать в архиве.
Сейчас файл создается но когда скачиваю файл, то файл не открывается
const express = require('express')
const excel = require('exceljs')
const bodyParser = require('body-parser')
const app = express()
const spawn = require('child_process').spawn
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(bodyParser.raw());
const reportFields = [
{
title: "Время создания",
description: "10.12.2021",
},
{
title: "Title",
description: "Description",
},
];
app.post('/download/excel', (req, res) => {
let workbook = new excel.Workbook();
let worksheet = workbook.addWorksheet("Report");
worksheet.columns = [
{ header: "Title", key: "title", width: 25 },
{ header: "Description", key: "description", width: 25 },
];
worksheet.addRows(reportFields);
res.setHeader(
"Content-Type",
"application/zip"
);
res.setHeader(
"Content-Disposition",
"attachment; filename=archive.zip"
);
workbook.xlsx.writeFile("report.xlsx").then(() => {
console.log("xlsx file report is written.");
zip = spawn('zip',['-P', '12345' , 'archive.zip', 'report.xlsx']);
zip.on('exit', function(code) {
res.end(zip);
});
})
})