如何解决Nodejs Express response.download() 不符合预期
我正在使用以下代码来跟踪活动下载计数。
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 并表达 4.17.1
解决方法
终于找到了这个场景背后的原因。 我使用 nginx 服务器作为节点应用程序的反向代理,nginx 缓存内容并在关闭与客户端的连接之前关闭与节点应用程序的连接。
所以这是固定的
proxy_request_buffering off;
proxy_max_temp_file_size 0;
在 nginx 服务器的 location /
块内
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。