我正在使用Json2csv
将JSON转换为CSV并且我已成功转换CSV文件中的JSON但现在我想创建一个名为output.csv
的数据文件,我想尽快单击该API output.csv
文件会自动下载。
这是我试过的
const JsonToCsv = (fields,res,data) => {
const opts = { fields };
try {
const parser = new Json2csvParser(opts);
const csv = parser.parse(data);
res.set('Content-Type', 'text/csv');
// const csv = parser.parse(myData);
fs.writeFile('./output.csv', csv, (err) => {
if (err) {
console.log(err);
}
else {
console.log('wrote output.csv');
res.setHeader('Content-disposition', 'attachment; filename=output.csv');
res.download('./output.csv');
res.send(csv);
}
});
} catch (err) {
console.error(err);
}
}
现在制作了csv文件,但没有下载。
答案 0 :(得分:0)
您需要使用fs.readFile
执行此操作,而不是使用流,因为我看到您正在使用json2csv
模块中的同步API。
您可以执行以下操作,强制下载csv文件。
const csv = parser.parse(myData);
fs.writeFile('./output.csv',csv, (err) => {
if (err) {
console.log(err);
}
else {
console.log('wrote output.csv');
res.download('./output.csv');
}
});