当我使用node.js 'request‘模块访问某个URI时;
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
发布于 2017-05-23 19:06:37
我强烈建议不要使用代码:
process.setMaxListeners(0);警告并非无缘无故地存在。大多数情况下,这是因为代码中隐藏了一个错误。删除该限制将删除警告,但不会消除其原因,并防止您收到资源泄漏源的警告。
如果出于合理的原因而达到限制,则在函数中添加一个合理的值(默认值为10)。
此外,要更改默认设置,不需要处理EventEmitter原型。可以设置defaultMaxListeners属性的值,如下所示:
require('events').EventEmitter.defaultMaxListeners = 15;发布于 2015-08-17 12:14:22
我使用代码来提高默认的全局限制:require('events').EventEmitter.prototype._maxListeners = 100;
发布于 2011-11-30 14:59:58
我就是这样解决问题的:
在“请求”模块的main.js中,我添加了一行:
Request.prototype.request = function () {
var self = this
self.setMaxListeners(0); // Added line这定义了无限侦听器http://nodejs.org/docs/v0.4.7/api/events.html#emitter.setMaxListeners。
在我的代码中,我显式地设置了'maxRedirects‘值:
var options = {uri:headingUri, headers:headerData, maxRedirects:100};https://stackoverflow.com/questions/8313628
复制相似问题