我需要一个关于如何生成 Excel 的简单帮助,然后在无服务器脱机中单击 API url 将其导出。它应该显示该文件的下载选项。当我使用 express frework 在普通节点中创建文件时,它正在生成正确的 Excel 文件,我可以轻松下载该文件。但是,当我在无服务器脱机中使用相同的代码时,我会在下载时收到一个损坏的 .xlsx 文件。我是离线无服务器的新手,只知道离线创建和使用 lambda 函数的基础知识。请帮助我完成这项任务。
**app.js:**
var Excel = require('exceljs');
var app = express();
var nodeExcel = require('excel-export');
const serverless = require('serverless-http')
app.get("/click", async (req, res) => {
var workbook = new Excel.Workbook();
var worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'Id', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'DOB', width: 10 }
];
worksheet.addRow({ id: 1, name: 'John Doe', dob: new Date(1970, 1, 1) });
worksheet.addRow({ id: 2, name: 'Jane Doe', dob: new Date(1965, 1, 7) });
await workbook.xlsx.writeFile('./temp.xlsx')
var fileName = 'temp.xlsx';
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
await workbook.xlsx.write(res);
})
module.exports.handler = serverless(app);
**Serverless.yml:**
plugins:
- serverless-offline
provider:
name: aws
runtime: nodejs10.x
custom:
serverless-offline:
host: '0.0.0.0'
functions:
app:
handler: route/app.handler
events:
- http:
path: /click
method: get