Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJs将Mongoose文档作为文件下载_Node.js_Mongodb_Csv - Fatal编程技术网

Node.js NodeJs将Mongoose文档作为文件下载

Node.js NodeJs将Mongoose文档作为文件下载,node.js,mongodb,csv,Node.js,Mongodb,Csv,我试图从mongoose文档查找触发文件下载,但是,我似乎无法将返回的数据作为文件返回 如您所见,我正在将一些从DB返回的json数据转换为CSV,然后尝试将其作为文件类型text/CSV发送到客户端 发送响应时,数据似乎没有生成文件附件 如有任何正确方向的建议或建议,将不胜感激 exports.download = function (req, res, next) { var dataSetId = req.params.id; DataContentModel.findById(

我试图从mongoose文档查找触发文件下载,但是,我似乎无法将返回的数据作为文件返回

如您所见,我正在将一些从DB返回的json数据转换为CSV,然后尝试将其作为文件类型text/CSV发送到客户端

发送响应时,数据似乎没有生成文件附件

如有任何正确方向的建议或建议,将不胜感激

exports.download = function (req, res, next) {
  var dataSetId = req.params.id;

  DataContentModel.findById(dataSetId, function (err, doc) {
    if (err) return next(err);
    if (!doc) return res.send({'error': 'This record was not found.'});

    var keys = [];
    for(var k in doc.data[0]) keys.push(k);

    json2csv({data: doc.data, fields: keys}, function (err, csv) {
      if (err) console.log(err);

      res.setHeader('Content-Type', 'text/csv');
      res.setHeader('Content-Disposition', 'attachment; filename=csv.csv');
      res.send(csv);

    });
  });

};

我需要更多的信息。到底哪里出了问题?您是否已验证数据是否正确来自mongo?您是否验证了csv转换的有效性?只是下载提示不起作用吗?当你尝试它时会发生什么?@TimothyStrimple嘿,对不起,我认为我的解释已经足够了。是的,所有内容都进入了res.send。输出看起来像一个正确的csv文件,并响应浏览器,但只是作为数据,而不是作为文件附件。