【发布时间】:2014-09-24 13:55:20
【问题描述】:
我遇到了 Node.js 中的事件发射器警告问题。我正在尝试使用Mongoskin 连接到 MongoDB。您能否向我解释为什么会出现警告以及如何避免它?
for (j in self.channel_data) {
( function( channel, index ) {
mongo.collection('revenue_share')
.find({ approved: true,
entity_id: channel.user_channel_id,
date_effective: {$lte: +new Date(self.report_data[channel.report_id].end_date).getTime()}
}, selectables)
.sort({date_effective : -1})
.toArray(function (err, _data) {
if (err || !_data.length) {
return self.fetched_rev_share(channel, null);
}
return self.fetched_rev_share(channel, _data[0]);
});
})(self.channel_data[j], j);
}
这是显示的警告:
(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:185:8)
at SkinClass.open (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/utils.js:156:23)
at SkinClass.SkinCollection._open (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/collection.js:49:17)
at SkinClass.open (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/utils.js:162:14)
at SkinClass.SkinCursor._open (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/cursor.js:28:25)
at SkinClass.open (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/utils.js:162:14)
at SkinClass.(anonymous function) [as sort] (/Users/ninz/Sites/freedom-node-backend/node_modules/mongoskin/lib/utils.js:116:14)
at /Users/ninz/Sites/freedom-node-backend/helpers/channel_earnings.js:61:18
at Query.loop_to_channels [as _callback] (/Users/ninz/Sites/freedom-node-backend/helpers/channel_earnings.js:70:7)
【问题讨论】:
-
你知道吗,如何摆脱这个警告以及它的原因是什么?
-
@AvaniKhabiya 据我记得,由于另一个要求,我们放弃了使用 mongodb 转而使用 aurora/mysql,所以我已经忘记了这个问题的修复。对不起。
标签: node.js mongodb eventemitter