Mongoose: DeprecationWarning: Die aktuelle Server Discovery and Monitoring Engine ist veraltet und wird in einer zukünftigen Version entfernt. Um das neue Server Discover and Monitoring-Modul zu verwenden, übergeben Sie die Option { useUnifiedTopology: true } an den MongoClient-Konstruktor.

Erstellt am 11. Sept. 2019  ·  20Kommentare  ·  Quelle: Automattic/mongoose

Hallo, ich habe gerade die neueste Version von Mungo von npm heruntergeladen und versucht, sie auszuführen, aber sie gab mir diese Warnung:
DeprecationWarning: Die aktuelle Server Discovery and Monitoring Engine ist veraltet und wird in einer zukünftigen Version entfernt. Um das neue Server Discover and Monitoring-Modul zu verwenden, übergeben Sie die Option { useUnifiedTopology: true } an den MongoClient-Konstruktor.

Ich habe diese Option zu meiner Konfiguration hinzugefügt, aber sie gibt mir immer noch diese Warnung. hier ist meine Konfiguration

mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useFindAndModify: false, useCreateIndex: true, useUnifiedTopology: true }).then(()=>{ console.log( Verbindung zur Datenbank hergestellt ) }).catch(err=>{ console.log( DB-Fehler ${err.message} ); process.exit(-1) })

irgendeine Ahnung?

Hilfreichster Kommentar

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.

Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Alle 20 Kommentare

Das Gleiche passiert mir.

Es gibt auch deinen Thread dazu auf StackOverflow: https://stackoverflow.com/questions/57895175/server-discovery-and-monitoring-engine-is-deprecated/57899638#57899638

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.

Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.

Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Ich hatte den gleichen Fehler und "useUnifiedTopology: true" wurde behoben, danke! Es ist übrigens bereits in der Readme des Repo aktualisiert

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.

Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Das Hinzufügen von useUnifiedTopology: true zum Objekt, nachdem meine Verbindungs-URL genauso funktioniert hat, wie Sie es vorgeschlagen haben, obwohl ich MongoClient verwendet habe. Vielen Dank!

Es immer noch Fehler:

const options = {
    keepAlive: 1,
    useUnifiedTopology: true,
    useNewUrlParser: true,
  };
  mongoose.connect(dbUrl, options).then(() => console.log('DB connected'));

Es ausgegeben:

(node:14923) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

Kann mir jemand helfen? Vielen Dank!

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.
Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Ich hatte den gleichen Fehler und "useUnifiedTopology: true" wurde behoben, danke! Es ist übrigens bereits in der Readme des Repo aktualisiert

@jiobiagba Ja, ich habe Ihre Lösung jetzt ausprobiert, mein node.js-Server zeigt mir keinen Fehler an, sondern zeigt einfach "Der Server läuft auf Port: 7070 ".

Danke für die Lösung hoffe es kommt kein Fehler.

Ich hatte das gleiche Problem und beim Einfügen von useUnifiedTopology: true wurde kein Terminalfehler mehr angezeigt.

Folgen Sie dem Code:

mongo() {
this.mongoConnection = mongoose.connect(process.env.MONGO_URL, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
useFindAndModify: wahr,
});
}

Dieser Parameter funktioniert nicht mit unserer Replikatsatz-URL:

error:getaddrinfo ENOTFOUND .xyz.net .xyz. Netto: 12345

Sind zusätzlich zu diesem Parameter Änderungen am Replikatsatz erforderlich?

@cbratschi können Sie bitte im Detail erklären, weil ich genaue Fehler und Code möchte, damit ich weiter versuchen kann, Ihnen zu helfen.

Auch ich hatte das gleiche Problem und nach dem Einfügen von useUnifiedTopology: true, ich habe keine Fehler, aber das Konsolenprotokoll im .then()-Block wird nicht ausgeführt.

mongoose.connect(MONGODB_URI,{ useNewUrlParser: true, useUnifiedTopology: true })
.then(()=> console.log('Datenbankverbindung erfolgreich!!'))
.catch(err => console.error(err));

@guhandelta kein Code wird ausgeführt (.then() und .catch())?

Ja ... keine, ich erhalte keine Konsolenprotokolle an meiner cmd-Eingabeaufforderung oder Fehler.

server/index.js =>
node indexjs

npm run dev =>
npm run dev

@cbratschi können Sie bitte im Detail erklären, weil ich genaue Fehler und Code möchte, damit ich weiter versuchen kann, Ihnen zu helfen.

Ich sehe nur diese Zeilen in der Protokollnachricht und der Stacktrace enthält die gleichen Informationen:

    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
(node:7740) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

Dies ist die von uns verwendete URL (anonymisiert):

mongodb://user:[email protected] :27018,.xyz. net:27019 ,.xyz. net:27020/account?replicaSet=mongors&readPreference=primaryPreferred

Update: Es funktioniert, wenn der Teil der abc-Subdomäne in der URI wiederholt wird. Zum Beispiel:

mongodb://user:[email protected] :27018,abc.xyz. net:27019 ,abc.xyz. net:27020/account?replicaSet=mongors&readPreference=primaryPreferred

@cbratschi können Sie bitte Ihren Code einmal überprüfen, da er hier direkt die Idee gibt, dass der Fehler dasselbe sagt. Es könnte sein, dass Sie Code für die Handhabung von Catch- oder Async-Code hinterlassen oder das Versprechen verpasst haben, das in non obligatorisch ist -Blockierung.

Hallo, ich habe:

.connect(process.env.MONGO_URI, {
useUnifiedTopology: true,
useNewUrlParser: true,
})
.then(() => console.log('DB Connected!'))
.catch(err => {
console.log(Error, err.message);
});

Beim Start erhalte ich an der Konsole:
[Function: Error] { stackTraceLimit: 16, prepareStackTrace: undefined } connection 0 to acccluster-shard-00-01-xx47j.mongodb.net:27017 closed

@cbratschi können Sie bitte Ihren Code einmal überprüfen, da er hier direkt die Idee gibt, dass der Fehler dasselbe sagt. Es könnte sein, dass Sie Code für die Handhabung von Catch- oder Async-Code hinterlassen oder das Versprechen verpasst haben, das in non obligatorisch ist -Blockierung.

Die Subdomain wurde in der Implementierung nicht richtig geparst. Der Wechsel zu vollständigen Domains funktioniert jetzt einwandfrei (siehe meinen letzten Kommentar). Die Implementierung ist also nicht vollständig standardkonform.

Bei mir funktioniert das einwandfrei und es treten keine Fehler mehr auf.

Mungo
.connect(process.env.MONGO_URI, {
useUnifiedTopology: wahr,
useNewUrlParser: true,
})
.then(() => console.log('DB verbunden!'))
.catch(err => {
konsole.log( DB Connection Error: ${err.message} );
});

Ich habe die in diesem Link angegebene Methode verwendet, aber es hat nicht funktioniert. Nach Verwendung der Option useUnifiedTopology in mongoose.connect() hat es funktioniert!

Ich habe den Weg hierher gefunden, weil ich das gleiche Problem habe - ich bin gerade auf die neueste Version von mongodb umgestiegen und erhalte die Warnung. Ich habe useUnifiedTopology zu den an den MongoClient-Konstruktor übergebenen Optionen hinzugefügt, aber die Warnung bleibt bestehen. Die Verbindung zur entfernten Datenbank scheint in Ordnung, die Operationen sind erfolgreich und es gibt keine anderen Fehlermeldungen oder Warnungen. Meine URL lautet: mongodb://myUsername:[email protected] :27017/myDatabaseName

Ich habe diesen Fehler damit behoben:

mongoose.connect('mongodb+srv: {...}', {
useNewUrlParser: true,
useUnifiedTopology: true
});

Bitte folgen Sie den Anweisungen in den Dokumenten hier: https://mongoosejs.com/docs/deprecations.html

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen