Node.js Express: 奇怪的字符响应下载 XLSX 附件

Node.js Express: Weird Characters in response to download XLSX Attachment

我将 xlsx-populate 模块与 node.js 一起使用。如他们网站上所述,我将工作簿作为缓冲区发送。我正在使用邮递员点击 API 并获取 xlsx 文件作为附件。但是我得到的回复有奇怪的字符,如下所示:

�2�N��N��+xl/drawings/drawing1.xml����0��>ٻ=C���@`ChB�M�
��M���8�̗�����ً��5��2��i
const workbook = await XlsxPopulate.fromFileAsync(filename);

// await workbook.toFileAsync(outfile);
const data = await workbook.outputAsync();

res.attachment("output.xlsx");
res.send(data);

当我使用await workbook.toFileAsync(outfile);在本地保存文件时,一切正常,我可以读取文件。 但是,当我尝试使用命令 res.attachment("output.xlsx");res.send(data); 发送要下载的文件时,我在对 Postman 的响应中收到奇怪的字符。

响应 headers 有 11 个属性,其中包括:

content-disposition -> attachment; filename="output.xlsx"
content-type -> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

xlsx-populate 的 GitHub 页面也提到了使用 express 下载 xlsx 文件的类似步骤: https://github.com/dtjohnson/xlsx-populate#serving-from-express

尝试使用 Postman 中的 "Send and download" 按钮,只需单击“发送”按钮上的向上箭头,您应该会看到此选项。

然后当您发送请求时,系统会提示您下载 "output.xlsx" 文件。

我认为您不需要进行任何编码更改。