我已经编写了一个API,可以将用户集合从MONGODB导出到CSV 。只需单击一下按钮即可调用该API,并将其导出为CSV数据...现在的问题是,调用此API时,它会生成我的项目中的结果文件,我希望结果文件能够在客户端获取下载,意味着当用户单击“导出”按钮时,它显示一个“另存为”选项,用户选择文件夹,名称等,然后在客户端计算机上下载该文件 ...任何想法如何实现此目标...我使用 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!");
});
});
})
答案 0 :(得分:0)
您可以添加内容类型以进行响应,并如下所示设置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");
});
答案 1 :(得分:0)
将response.download()方法添加到您的代码中。这将使用户能够在客户端上下载文件:
res.download('path/to/file-to-download');