Mongoose: DeprecationWarning : le moteur actuel de détection et de surveillance des serveurs est obsolète et sera supprimé dans une future version. Pour utiliser le nouveau moteur de découverte et de surveillance du serveur, transmettez l'option { useUnifiedTopology: true } au constructeur MongoClient.

Créé le 11 sept. 2019  ·  20Commentaires  ·  Source: Automattic/mongoose

Salut, je viens de télécharger la dernière version de mongoose à partir de npm et j'ai essayé de l'exécuter, mais cela m'a donné cet avertissement :
DeprecationWarning : le moteur actuel de détection et de surveillance des serveurs est obsolète et sera supprimé dans une future version. Pour utiliser le nouveau moteur de découverte et de surveillance du serveur, transmettez l'option { useUnifiedTopology: true } au constructeur MongoClient.

J'ai ajouté cette option à ma configuration mais cela me donne toujours cet avertissement. voici ma config

mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useFindAndModify: false, useCreateIndex: true, useUnifiedTopology: true }).then(()=>{ console.log( connexion à la base de données établie ) }).catch(err=>{ console.log( erreur db ${err.message} ); process.exit(-1) })

une idée ?

Commentaire le plus utile

Cela fonctionne bien pour moi, et plus d'erreurs.

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

Tous les 20 commentaires

Il m'arrive la même chose.

Il y a aussi votre fil à ce sujet sur StackOverflow : https://stackoverflow.com/questions/57895175/server-discovery-and-monitoring-engine-is-deprecated/57899638#57899638

Cela fonctionne bien pour moi, et plus d'erreurs.

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

Cela fonctionne bien pour moi, et plus d'erreurs.

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

J'étais confronté à la même erreur et "useUnifiedTopology: true" a été corrigé, merci! C'est déjà mis à jour sur le readme du repo d'ailleurs

Cela fonctionne bien pour moi, et plus d'erreurs.

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

L'ajout de useUnifiedTopology: true à l'objet après que mon URL de connexion a fonctionné comme vous l'avez suggéré, même si j'utilisais MongoClient. Merci!

Il y a toujours une erreur :

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

Il sort :

(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.

Est-ce que quelqu'un peut m'aider? Merci!

Cela fonctionne bien pour moi, et plus d'erreurs.
mangouste
.connect(process.env.MONGO_URI, {
useUnifiedTopology : vrai,
useNewUrlParser : vrai,
})
.then(() => console.log('DB Connected!'))
.catch(err => {
console.log( DB Connection Error: ${err.message} );
});

J'étais confronté à la même erreur et "useUnifiedTopology: true" a été corrigé, merci! C'est déjà mis à jour sur le readme du repo d'ailleurs

@jiobiagba Oui, j'ai essayé votre solution maintenant, mon serveur node.js ne port : 7070 ».

Merci pour la solution, j'espère qu'aucune erreur ne viendra.

J'avais le même problème et lors de l'insertion de useUnifiedTopology: true, j'ai cessé d'afficher l'erreur de terminal.

Code de suivi :

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

Ce paramètre ne fonctionne pas avec l'URL de notre jeu de réplicas :

erreur:getaddrinfo ENOTFOUND .xyz.net .xyz. net : 12345

Des modifications du jeu de réplicas sont-elles nécessaires en plus de ce paramètre ?

@cbratschi pouvez-vous expliquer en détail car je veux une erreur et un code exacts afin que je puisse essayer de vous aider.

J'ai moi aussi rencontré le même problème et après avoir inséré useUnifiedTopology : vrai, je ne rencontre aucune erreur, mais le journal de la console dans le bloc .then() n'est pas exécuté.

mongoose.connect(MONGODB_URI,{ useNewUrlParser : true, useUnifiedTopology : true })
.then(()=> console.log('Connexion à la base de données réussie !!'))
.catch(err => console.error(err));

@guhandelta aucun code ne s'exécute (.then() et .catch()) ?

Oui... aucun, je ne reçois aucun journal de la console sur mon invite de commande ou mes erreurs.

serveur/index.js =>
node indexjs

npm run dev =>
npm run dev

@cbratschi pouvez-vous expliquer en détail car je veux une erreur et un code exacts afin que je puisse essayer de vous aider.

Je ne vois que ces lignes dans le message de journal et le stacktrace contient les mêmes informations :

    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)

Voici l'URL que nous utilisons (anonymisée) :

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

Mise à jour : cela fonctionne si la partie sous-domaine abc est répétée dans l'URI. Par exemple:

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

@cbratschi pouvez-vous s'il vous plaît revoir votre code une fois parce qu'il dirigera l'idée ici, l'erreur dit la même chose. il se peut que vous laissiez du code pour gérer le catch ou le code async -blocage.

Bonjour J'ai:

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

Quand il démarre, j'obtiens à la console:
[Function: Error] { stackTraceLimit: 16, prepareStackTrace: undefined } connection 0 to acccluster-shard-00-01-xx47j.mongodb.net:27017 closed

@cbratschi pouvez-vous s'il vous plaît revoir votre code une fois parce qu'il dirigera l'idée ici, l'erreur dit la même chose. il se peut que vous laissiez du code pour gérer le catch ou le code async -blocage.

Le sous-domaine n'a pas été analysé correctement dans l'implémentation. Passer aux domaines complets, cela fonctionne bien maintenant (voir mon dernier commentaire). La mise en œuvre n'est donc pas entièrement conforme aux normes.

Cela fonctionne bien pour moi, et plus d'erreurs.

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

J'utilisais la méthode indiquée dans ce lien , mais cela ne fonctionnait pas. Après avoir utilisé l'option useUnifiedTopology dans mongoose.connect(), cela a fonctionné !

J'ai trouvé mon chemin ici parce que j'ai le même problème - je viens de passer à la dernière version de mongodb et je reçois l'avertissement. J'ai ajouté useUnifiedTopology aux options transmises au constructeur MongoClient, mais l'avertissement persiste. La connexion à la base de données distante semble correcte, les opérations réussissent et il n'y a pas d'autres messages d'erreur ou avertissements. Mon URL est : mongodb://myUsername:[email protected] :27017/myDatabaseName

J'ai corrigé ce bug avec ceci :

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

Veuillez suivre les instructions sur les docs ici : https://mongoosejs.com/docs/deprecations.html

Cette page vous a été utile?
0 / 5 - 0 notes