node.js - 在 node js 中使用 express js,node.js 无法下载csv文件

  显示原文与译文双语对照的内容
131 5

在CSV文件中,我想把JSON转换成xml文件,但是现在我想把这个数据自动下载到 Json2csv 文件。

这是我尝试


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文件已经创建,但它没有下载。

时间: 原作者:

133 5

你需要使用 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');


 }


 });



...