Express res.download()实际上没有下载文件

时间:2014-11-24 21:28:03

标签: node.js express

我试图通过Express'将生成的文件返回到前端。 res.download函数。我使用chrome,但每当我调用执行以下代码的API时,返回的所有内容都与Express res.sendFile()函数返回的值相同。

我知道res.download使用res.sendFile,但我希望下载功能实际保存到文件系统而不是只返回响应正文中的文件。

这是我的代码。

exports.download = function(req,res) {
    var filePath = //somefile that I want to download
    res.download(filePath, 'response.txt', function(err) {
        throw err;
    }
}

我知道上面的代码至少部分有效,因为我在回复中找回了文件的内容。但是,我希望将其保存到文件系统中。

我是否误解了下载功能应该做什么?我只需要获取响应数据并手动将其写入文件系统吗?

1 个答案:

答案 0 :(得分:2)

res.download添加标题,向浏览器建议应该下载文件而不是打开文件。但是,没有办法强迫浏览器这样做;通常,用户可以选择是否下载特定文件。

如果您使用AJAX触发此请求,那么,这不会导致它被下载,因为您的JavaScript请求获取数据。

  

我是否只需要获取响应数据并手动将其写入文件系统?

您在浏览器端JavaScript中没有文件系统访问权限。我不确定你打算怎么做。