expressjs文件下载内存泄漏

Posted

技术标签:

【中文标题】expressjs文件下载内存泄漏【英文标题】:expressjs file download memory leak 【发布时间】:2018-03-24 12:01:19 【问题描述】:

我在使用 ExpressJs 时遇到了一种非常奇怪的行为,如果在一秒钟内被多个请求击中,下面的代码会向客户端抛出 404 并且查看日志我看到的所有内容如下:

(node:1460) 警告:检测到可能的 EventEmitter 内存泄漏。 11 添加了文件侦听器。使用emitter.setMaxListeners() 增加限制

目标方法(从 AWS S3 存储桶下载文件并通过管道传输响应):

 exports.download = function (req, res) 
     var fileName = req.params.fileName;

     var options = 
         Bucket: config.s3.bucket,
         Key: fileName
     ;

     res.attachment(fileName);
     s3.getObject(options).createReadStream().on('error', function(err)
         console.log(err);
     ).pipe(res);
 

【问题讨论】:

【参考方案1】:

事实证明,formidable 妨碍了。一旦我从这个请求中过滤掉它,一切都会按预期工作。

【讨论】:

以上是关于expressjs文件下载内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

检测应用的内存泄漏情况(shell)

如何找到内存泄漏?

私有脏内存可以表明内存泄漏吗?

c++ 内存泄漏问题

存储过程会导致内存泄漏吗?

MFC内存泄漏调试