node.js - NodeJS 服务器写入响应并开始文件下载

标签 node.js response

我正在为公司内部服务创建一个简单的文件转换工具。

我创建了一个 http 服务器,任何用户都可以通过表单上传文件,并且服务器通过下载转换后的文件来响应请求。

我想在屏幕上写下转换摘要,然后他们开始下载。不只是开始文件下载。

我的代码是:

createServer(function(req, res) {
    var form = new IncomingForm();
    form.parse(req, function(err, fields, files) {
        var path = files.filetoupload.path;
        var result = dataConverter.parse(path); // File data conversion

        res.writeHead(200);
        res.write(result.summary);

        res.writeHead(200, { "Content-Type": "application/force-download", "Content-disposition": "attachment; filename=outputfile.csv" });
        res.write(result.data);

        res.end();

    });

但我收到了以下回复

ERR_INVALID_CHUNKED_ENCODING

我如何向用户写这两个响应?

最佳答案

如果没有一些客户端 Javascript 或类似的东西,这是不可能的。 内容应该是一个文件或写入“页面”。

最好的解决方案是创建一个临时文件来下载,然后将响应发送到页面。

关于node.js - NodeJS 服务器写入响应并开始文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742397/

相关文章:

javascript - Node.JS 在不停止 node.js 脚本的情况下再次运行 Node-Mysql 查询

javascript - 如何编写一个等待事件在 'returning' 之前触发的 node.js 函数?

json - Angular 9 将 json 响应映射到数组

c# - response.writefile 后页面处理停止

json - 使用groovy解析响应Json字符串

node.js - 带图像的提示对话框选择 - node.js

node.js - 无法从 nodejs 上传到谷歌云或 firebase 存储桶

node.js - 在 Typescript 中扩展 Express 中间件

jmeter - Headless JMeter - 如何在输出文件中打印响应数据

php - 知道 HTTP 状态代码是来自 apache 还是 PHP 的任何方法