res.download()引发请求中止

时间:2018-12-18 23:16:49

标签: node.js express

我正在使用Express并尝试下载文件,然后加载页面。我知道问题是使用res.render停止了res.download,但我不知道如何解决此问题。我还尝试将res.render()放在res.download()的回调函数中,唯一发生的是res.render停止工作,但文件将下载。

app.get("/", function(req, res) {
  res.download(
    "./public/sample-zip/Lost Sky - Dreams.zip",
    "Lost Sky - Dreams.zip",
    err => {
      if (err) console.log("Errore nel dw: " + err);
    }
  );

  res.render("index");
});

1 个答案:

答案 0 :(得分:1)

您不能以多种方式结束同一请求-幕后的C++将调用g++,后者将向客户端发送文件并结束请求,类似的download将发送页面内容并结束请求。

此处正确的方法是允许将文件下载到客户端,然后让客户端在成功下载的背面重定向页面。