如何用koajs下载csv文件

我使用koajs作为nodejs的框架。 我尝试创buildCSV数据,并将其响应给客户端,但不工作

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; }) 

响应是计划文本数据而不是附件文件这里是响应头

这是应对机构

如果你想发送一个可下载的文件附加到身体,你需要创build一个文件的读取stream。

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

注意:结果你有文件path