下载 csv 文件 node.js

新手上路,请多包涵

我正在使用 node.js 构建一个应用程序并尝试将数据下载为 csv 文件。为此,我正在使用 json2csv ( https://www.npmjs.com/package/json2csv )。但是,按照我的配置方式,.csv 文件存储在我的应用程序的根目录中。我希望将文件作为下载发送给用户 - 例如,该文件应出现在用户的 /downloads 文件夹中。这是我当前的代码:

 var fields = ['car', 'price', 'color'];
var myCars = [
  {
    "car": "Audi",
    "price": 1,
    "color": "blue"
  }, {
    "car": "BMW",
    "price": 1,
    "color": "black"
  }, {
    "car": "Porsche",
    "price": 1,
    "color": "green"
  }
];

json2csv({ data: myCars, fields: fields }, function(err, csv) {
  if (err) console.log(err);
  fs.writeFile('file.csv', csv, function(err) { //currently saves file to app's root directory
    if (err) throw err;
    console.log('file saved');
  });

});

var file = '../software-project-metric-dashboard/file.csv';
res.download(file, 'testfile.csv');

有人可以帮忙吗?

谢谢!

原文由 Trung Tran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 340
1 个回答

如果您使用 express ,请使用 res.send 。

你必须定义一个看起来像这样的 HTTP GET 路由:

 app.get("/pathToYourDownload", function (req, res) {
  json2csv({ data: myCars, fields: fields }, function(err, csv) {
    res.setHeader('Content-disposition', 'attachment; filename=data.csv');
    res.set('Content-Type', 'text/csv');
    res.status(200).send(csv);
  });
});

原文由 Kiechlus 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题