Skip to content

Commit 06a06ca

Browse files
authored
Merge pull request #14864 from Automattic/vkarpov15/gh-14859
fix(connection): avoid MaxListenersExceededWarning on multiple useDb() calls by avoiding using event emitters
2 parents 088f97a + 350891c commit 06a06ca

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

Diff for: lib/connection.js

+3
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ function Connection(base) {
7171
} else {
7272
this.id = base.nextConnectionId;
7373
}
74+
75+
// Internal queue of objects `{ fn, ctx, args }` that Mongoose calls when this connection is successfully
76+
// opened. In `onOpen()`, Mongoose calls every entry in `_queue` and empties the queue.
7477
this._queue = [];
7578
}
7679

Diff for: lib/cursor/queryCursor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const eachAsync = require('../helpers/cursor/eachAsync');
1010
const helpers = require('../queryHelpers');
1111
const kareem = require('kareem');
1212
const immediate = require('../helpers/immediate');
13-
const { once } = require('node:events');
13+
const { once } = require('events');
1414
const util = require('util');
1515

1616
/**

Diff for: lib/drivers/node-mongodb-native/connection.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ NativeConnection.prototype.useDb = function(name, options) {
9696
if (this.db && this._readyState === STATES.connected) {
9797
wireup();
9898
} else {
99-
this.once('connected', wireup);
99+
this._queue.push({ fn: wireup });
100100
}
101101

102102
function wireup() {

0 commit comments

Comments
 (0)