node.js - 如何使用koajs下载csv文件

标签 node.js csv attachment koa.js

我使用 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

Here is response body

最佳答案

如果您想发送附加到正文的可下载文件,您需要创建该文件的读取流。

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/

相关文章:

node.js - 使用 ExpressJS 发送生成的 zip 文件

javascript - 使用 underscore.js 从对象/数组中仅检索一个字段

javascript - 从另一个模块注入(inject)nestjs服务

node.js - 如何在浏览器同步中配置端口

javascript - 我正在尝试使用谷歌表格自动化报告,我想增加范围(列,行),这样我就不会过度写入数据

teamcity - 如何在 TeamCity 8.1 构建运行对话框中附加文件?

node.js - 如何将 api key 传递给 Google Cloud Vision NodeJS API

Python:将csv文件中的行数据放入列表中

python - Pandas:DataFrame.from_dict() 中的分隔符

用于搜索帖子附件的 Wordpress 插件(通常是文本文件,如 doc 或 Pdf)