【问题标题】:Nodejs Express response.download() Not Behaving as ExpectedNodejs Express response.download() 未按预期运行
【发布时间】:2021-03-12 20:02:39
【问题描述】:

我正在使用以下代码来跟踪活动下载次数。

router.get('/download/:fileName', (req, res) => {
    let fileName = req.params.fileName;
    let baseFilePath='/home/filePath';

    incrementDownloadCount(fileName);

    return res.download(
        `${baseFilePath}/${fileName}`,
        `${fileName}`,
        function (err) {
            if (err) {
                console.log(`ERROR ++ : ${err}`);
            } else {
                console.log('download completed');
            }
            decrementDownloadCount(fileName);
        }
    );
});

每次下载开始时,下载计数都会增加一,但几秒钟后,“下载完成”会打印到日志中,并且在下载过程中下载计数会减少。

在 nodejs express 文档中,回调函数在下载完成后或发生异常时调用。有人可以帮忙吗?

我正在使用 nodejs 14.16.0 和 express 4.17.1

【问题讨论】:

    标签: javascript node.js express download


    【解决方案1】:

    终于找到了这个场景背后的原因。 我使用 nginx 服务器作为节点应用程序的反向代理,nginx 缓存内容并在关闭与客户端的连接之前关闭与节点应用程序的连接。

    所以这是固定的使用

    proxy_request_buffering off;
    proxy_max_temp_file_size 0;
    

    在 nginx 服务器的 location / 块内

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 2018-12-23
      • 2014-11-12
      • 1970-01-01
      • 2020-06-28
      • 2012-02-18
      • 2018-01-18
      • 2012-06-14
      • 2019-03-03
      相关资源
      最近更新 更多