node.js - 在客户端下载 CSV 文件
问题描述
我已经编写了一个 API 来将用户集合从 MONGODB 导出到 CSV。API 在按钮单击时被调用,并将数据导出到 CSV... 现在的问题是,当调用此 API 时,它会在我的项目中生成结果文件,我希望结果文件在客户端下载,这意味着当用户单击导出按钮时,它会显示一个另存为选项,用户选择文件夹、名称等,然后将文件下载到客户端计算机上......知道如何实现这一点......我,M 使用NODE JS , MONGODB和用于数据转换的JSON2CSV模块...下面是我的代码
app.get('/USER/exporttocsv', function (req, res, next) {
USER.find().select('-__v').lean().exec({}, function (err, products) {
const json2csvParser = new Json2csvParser({ header: true });
const csvData = json2csvParser.parse(products);
fs.writeFile("bezkoder_mongodb_fs.csv", csvData, function (error) {
if (error) throw error;
console.log("Write to bezkoder_mongodb_fs.csv successfully!");
});
});
})
解决方案
您可以将内容类型添加到响应并设置 csv 文件名,如下所示。
router.get('/csv', (req, res) => {
res.setHeader('Content-Type', 'text/csv');
res.setHeader("Content-Disposition", 'attachment; filename=ireshan.csv');
res.send("Sally Whittaker,2018,McCarren House,312,3.75\r\nSally Whittaker,2018,McCarren House,312,3.75");
});
推荐阅读
- python - z3 - 意外输出/不确定输出是什么意思
- html - 单击 HTML 按钮时如何触发下载
- javascript - 我的 COVID api 似乎并非一直有效。如何预防或解决此问题?
- pandas - 数据框具有多级列索引的 Pandas groupby
- python - 当我运行 ./darknet detection demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4 时到底在运行什么?
- google-apps-script - 更改单元格选择时显示警报弹出窗口 (onSelectionChange)
- python - TypeError:迭代 0 维数组 Python(图像检测)
- php - 在 PHP 开发服务器 win 10 上更改 imagick 的权限或更改 tmp 目录
- grails - Grails 4.0.1 应用程序第一次加载页面在重启后需要一些时间
- ios - UIView 渐变作为多次应用的扩展