[英]“EventEmitter memory leak ” occuring inspite of using latest version of nodejs
经过大量的努力和谷歌搜索,我仍然无法弄清楚如何解决这个问题。 需要帮助...
输出:
(node) warning: possible EventEmitter memory leak detected. 51 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener (events.js:160:15)
at EventEmitter.once (events.js:179:8)
at SkinCollection.open (/home/nitin/node_modules/mongoskin/lib/mongoskin/collection.js:108:20)
at obj.(anonymous function) [as insert] (/home/nitin/node_modules/mongoskin/lib/mongoskin/utils.js:64:10)
at insertErrorLog (/home/nitin/dev/aayush/errorLog.js:37:18)
at Server.<anonymous> (/home/nitin/dev/aayush/errorLog.js:69:24)
at Server.EventEmitter.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2022:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:119:23)
at Socket.socket.ondata (http.js:1912:22)
CODE LINK: 链接到代码
提前向Thnax寻求帮助...
看起来db.collection
每当您调用它时都会创建一个EventEmitter。 您是否可以尝试在请求处理程序之外缓存集合:
var logs = db.collection('logs');
var insertErrorLog = function (req, res) {
var pathname = url.parse(req.url).pathname;
var ua = req.headers['user-agent']; // user-agent header from an HTTP request
var details = parser.setUA(ua).getResult();
var params = url.parse(req.url,true).query;
logs.insert({…});
快速查看代码表明它应该始终返回相同的实例,但是我看不到任何其他原因导致您的问题:
https://github.com/kissjs/node-mongoskin/blob/master/lib/mongoskin/db.js#L148
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.