2016-08-15 80 views
1

我使用koajs作爲nodejs的框架。我嘗試創建CSV數據並將其反應到客戶端,但沒有工作如何使用koajs下載csv文件

let fields = ['code', 'status']; 
let p = new Promise((resolve, reject) => { 
    json2csv({data: data, fields: fields }, (err, response) => { 
     if (err) { 
      reject(err); 
     } else { 
      resolve(response); 
     } 
    }); 
}); 
return p.then(data => { 
    let fileName = 'promotioncode-' + moment().unix(); 
    ctx.response.attachment(fileName + '.csv'); 
    ctx.response.type = 'application/ms-excel'; 
    ctx.body = data; 
}) 

的響應計劃文本數據,而不是附件文件 Here is response headers

Here is response body

+0

你有沒有想出解決辦法?我有類似的問題。 – aashah7

回答

1

如果您想發送一個下載文件附加到您需要創建文件的讀取流的正文。

const fs = require('fs'); 

ctx.set('Content-disposition', `attachment; filename=${result}`); 
ctx.statusCode = 200; 
ctx.body = fs.createReadStream(result); 

注意:結果你的文件路徑