0

在执行我的 mocha 测试套件期间,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

删除警告无济于事。

有什么线索吗?

4

1 回答 1

0

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

由于node-rest-client您的内部结构无法专门针对该模块进行更改(另请参阅此问题),但要在测试期间摆脱警告,请将其放在代码顶部的某个位置:

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

更多信息在这里

于 2015-08-26T11:47:30.313 回答