node.js - 下载文件后重定向 - Nodejs

标签 node.js

我正在尝试在下载文件后重定向页面。 这是代码:

app.get('/log', function(req,res){
     return res.download('file.txt', function(err){
            if(!err){
                return res.render('index.html');
            }
        });
})

但是每次我收到此错误时: 错误:发送后无法设置 header 。

下载后还有另一种重定向/渲染的方法吗? (请在服务器端)。

最佳答案

您不能按照您想象的方式执行此操作,因为 header 已随下载响应一起发送。

您可以通过自己操作响应来发送文件下载所需的 header 并同时发送位置 header 来完成。请求者应该理解位置 header 并相应地重定向。

例如。

const fileData = /* read file */;
res.set({
  'Content-Type': 'text/plain',
  'Location': '/'
});
res.end(fileData);

关于node.js - 下载文件后重定向 - Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363027/

相关文章:

node.js - Passportjs Facebook 登录流程(passport-facebook vs passport-token)

node.js - 如何在 Windows 中更改 Node 版本?

node.js - 将 Docker 与具有 node-gyp 依赖项的 nodejs 一起使用

node.js - 使用 Express 和 Jade 在 Node.js 中递归页面组装

node.js - Socket.io加入房间注册房间但只加入一个空字符串房间

node.js - 引用错误: db is not defined when i try to GET data from server

javascript - puppeteer 师 |等待所有 JavaScript 执行完毕

linux - 如何配置 Mailsac(一次性电子邮件服务器)?

node.js - 排除虚拟字段

json - 解析json时出现nodejs object.property未定义错误