使用 node-rest-client 检测到 EventEmitter 内存泄漏

EventEmitter memory leak detected with node-rest-client

在执行我的 mocha testsuit 期间,Node.js 报告了以下警告:

(node) warning: possible EventEmitter memory leak detected. 11 error listeners a
dded. Use emitter.setMaxListeners() to increase limit.
Trace
    at Object.addListener (events.js:179:15)
    at new exports.Client (C:\xyz\node_modules\node-rest-client\lib\node-rest-
client.js:320:17)
    at Context.<anonymous> (C:\xyz\test\backend\rest\resources.js:40:10)
...

我强烈怀疑这与我使用的 node-rest-client 模块有关。警告中指出的最后一行实际上是:

rest = new Client();

如果我只执行一个引发此警告的测试用例,则不会显示警告。只有当我执行整个测试套件时才会发生这种情况,大约有 15 条新的 Client() 行。

我还没有找到以某种方式关闭其余客户端的方法,所以我现在尝试简单地使用:

delete rest

删除警告没有帮助。

有什么线索吗?

这不一定是问题,更多的是系统的警告,以确保您知道自己在做什么。

由于 node-rest-client 的内部结构,您不能专门针对该模块更改它(另请参阅 this issue),但要在测试期间消除警告,请将其放在某处代码的顶部:

require('events').EventEmitter.defaultMaxListeners = Infinity;

更多信息here