【问题标题】:EventEmitter memory leak detected with node-rest-client使用 node-rest-client 检测到 EventEmitter 内存泄漏
【发布时间】:2015-08-26 19:47:30
【问题描述】:

在执行我的 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

删除警告没有帮助。

有什么线索吗?

【问题讨论】:

  • 我在同一代码行使用 node-rest-client 时也遇到了这个警告。希望这不是建议的实际内存泄漏。如果您发现除了以下答案之外的任何内容,请告诉我

标签: node.js node-rest-client


【解决方案1】:

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

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

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

更多信息here

【讨论】:

    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-02-27
    • 2021-09-05
    相关资源
    最近更新 更多