如何解决res.download 错误请求在大型 zip 文件 express、fast-csv、zip 上中止
我正在使用 fast-csv 将数据从 mongodb 转换为 CSV 格式,然后将其保存到产品文件夹中,其中还存在所有横幅图像。因此,我正在压缩包含所有横幅图像和 CSV 文件的产品文件夹,并返回带有 res.download
的 zip 文件作为 API 调用的响应。
以下代码只包含必要的部分。
import * as csv from "fast-csv";
const ws = fs.createWriteStream("products/file.csv");
csv
.write(data,{
headers: [
"_id","name","description","banner",],})
.on("finish",function () {
// console.log("Write to csv successfully!");
})
.pipe(ws)
.on("close",async function () {
try {
if (!fs.existsSync("tmp")) {
fs.mkdirsync("tmp");
}
await zipDir("products","tmp/zipfile.zip");
res.download("tmp/zipfile.zip","products.zip",async function (err) {
if (err) {
console.error(err);
}
});
} catch (error) {
console.error(error);
}
});
此代码在产品较少且 zip 文件较小时有效,但对于较大的 zip 文件失败并出现错误
Error: Request aborted
at onaborted (/home/user/project/node_modules/express/lib/response.js:1025:15)
at Immediate._onImmediate (/home/user/project/node_modules/express/lib/response.js:1067:9)
at processImmediate (internal/timers.js:461:21) {
code: 'ECONNABORTED'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。