node.js-to-go "emitter.setMaxListeners//"?

当我做 GET 在某一点 URI, 使用模块 node.js 'request';


var options = {uri:"aURI", headers:headerData};
request.get/options, function /error, response, body/ {
}


错误信息

:


[Error: Exceeded maxRedirects. Probably stuck in a redirect loop.]


还有以下消息

:


"/node/ warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners// to increase limit."


像我这样的
setMaxListeners

?
已邀请:

龙天

赞同来自:

我强烈建议 NOT 使用此代码:


process.setMaxListeners/0/;


这里的警告不是原因。 在大多数情况下,这发生了,因为在代码中隐藏了错误。 删除限制消除了警告,但不是其原因,并防止资源泄漏源。

如果您已经达到了合法原因的限制,请为该功能提出合理的价值 /默认 10/.

此外,要更改默认值,您不需要使用原型 EventEmitter. 您可以设置属性值 defaultMaxListeners 通过以下方式:


require/'events'/.EventEmitter.defaultMaxListeners = 15;

石油百科

赞同来自:

我将此代码用于全局默认限制增加:
require/'events'/.EventEmitter.prototype._maxListeners = 100;

龙天

赞同来自:

这就是我解决这个问题的方式:

在 main.js 模块 'request' 我加了一行:


Request.prototype.request = function // {
var self = this
self.setMaxListeners/0/; // Added line


这决定了无限数量的侦听器。
http://nodejs.org/docs/v0.4.7/ ... eners
在我的代码中,我明确设置了价值 'maxRedirects':


var options = {uri:headingUri, headers:headerData, maxRedirects:100};

龙天

赞同来自:

虽然向模块添加了一些东西 nodejs 也许这似乎不是最好的方式 /如果您尝试在另一台计算机上运行代码,则该程序将显然失败,同样错误/.

我宁愿在您自己代码中设置最大侦听器数:


var options = {uri:headingUri, headers:headerData, maxRedirects:100};
request.setMaxListeners/0/;
request.get/options, function /error, response, body/ {
}

风见雨下

赞同来自:

这种扩张是 @Félix Brunet

原因

- 在您的申请中

是隐藏的

代码

怎么找

-

标签 / 评论代码并在达到错误之前按照错误

检查日志文件

例如

, 在我的情况下,我创造了 30 副本
https://github.com/winstonjs/winston
在不知不觉中

, 他开始犯错误

笔记 :

如果抑制此错误 , 她会重复 3..4 天

窦买办

赞同来自:

尝试使用: require/'events'/.EventEmitter.defaultMaxListeners = Infinity;

窦买办

赞同来自:

它发生在我身上

我使用此代码并工作


require/'events'/.EventEmitter.defaultMaxListeners = infinity;


尝试。 这可以帮助

要回复问题请先登录注册