我使用 koajs 作为 Nodejs 的框架。我尝试创建 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
最佳答案
如果您想发送附加到正文的可下载文件,您需要创建该文件的读取流。
const fs = require('fs');
ctx.set('Content-disposition', `attachment; filename=${result}`);
ctx.statusCode = 200;
ctx.body = fs.createReadStream(result);
注意:结果你有文件路径
关于node.js - 如何使用koajs下载csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951795/