2017-01-11 23 views
2

json2csvノードモジュールを使用して、自分のデータが非常によく書いているCSVファイルを生成しています。 これは私のデータでcsvファイルを作成する私のコードです。json2csvを使用して作成したCSVファイルのダウンロード方法

Lead.find({ownerId:owner._id}, function(err, data){ 
       if(err){res.json(err)} 
        else{ 
        res.json(data); 
         var fields = ['lead', 'salutation', 'fname','lname','title','email','mobile','rating','address','city','state','zcode','company','industry','empSize','lsource']; 
         var csv = json2csv({ data: data, fields: fields }); 
         var path='./public/csv/file'+Date.now()+'.csv'; 
         fs.writeFile(path, csv, function(err,data) { 
         if (err) {throw err;} 
         else{ 
          console.log('file Created'); 
         //I need to download above creating csv file here 
         } 
        }); 
        } 

       }); 

ここで、csvを生成した後に、作成したCSVファイルをダウンロードする方法を知りたいと思います。 私は私が、私はそれを行うことができますか教えてくださいres.setHeader('Content-disposition', 'attachment; filename=data.csv'); res.set('Content-Type', 'text/csv'); res.status(200).send(data);

しかし、その動作していない...

を試してみました。

おかげ

答えて

3

あなたは、単にこのすべてを試した後res.download()

Lead.find({ownerId:owner._id}, function(err, data){ 
      if(err){res.json(err)} 
       else{ 
        var fields = ['lead', 'salutation', 'fname','lname','title','email','mobile','rating','address','city','state','zcode','company','industry','empSize','lsource']; 
        var csv = json2csv({ data: data, fields: fields }); 
        var path='./public/csv/file'+Date.now()+'.csv'; 
        fs.writeFile(path, csv, function(err,data) { 
        if (err) {throw err;} 
        else{ 
         res.download(path); // This is what you need 
        } 
       }); 
       } 

      }); 
+0

それは動作していません..何もコンソールエラーが表示されます –

+0

私は思う、どのミドルウェアapp.jsで競合している、それは可能です????????????????????? ? –

1
json2csv({ data: myCars, fields: fields }, function(err, csv) { 
    if(err) { 
     throw err; 
    } else { 
     var path='./csv'+Date.now()+'.csv'; 
     fs.writeFile(path, csv, function(err,data) { 
     if (err) {throw err;} 
     else{ 
      console.log('file Created'); 
      res.setHeader('Content-disposition', 'attachment; filename=data.csv'); 
      res.set('Content-Type', 'text/csv'); 
      res.status(200).send(csv); 
      //I need to download above creating csv file here 
     } 
    }); 
    } 
}); 

は、これであなたのコードを置き換えます。あなたが明示4.xを使用している場合は

+0

でも 'res.donwload(path)'も動作していない.....と表示されているコンソールエラーはありません –

+0

私はapp.jsにミドルウェアが矛盾していると思います????????????????????? –

1

を使用することができます.....私は解決策を得ました。 Node.jsのバックエンドで、API res.download(path)が問題なく動作しています。 正面に私はAngular.jsを使用しています。だから、それを実行可能にするために、私はアンカータグを作成して、今その作業罰金をこの

var anchor=angular.element('<a/>'); anchor.attr({href:'data:attachment/csv;charset=utf-8,' + encodeURI($scope.dattaa),target:'_blank',download:'lead'+Date.now()+'.csv'})[0].click();

などのクリックイベントをトリガする必要があります。

ありがとうございました。

関連する問題