1 votes

Le moteur de découverte et de surveillance du serveur est obsolète

Je suis en train d'utiliser Mongoose avec mon application Node.js et voici ma configuration:

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

mais dans la console, cela me donne toujours l'avertissement:

Avertissement de dépréciation : le moteur actuel de découverte et de surveillance du serveur est obsolète et sera supprimé dans une version future. Pour utiliser le nouveau moteur de découverte et de surveillance du serveur, passez l'option { useUnifiedTopology: true } au constructeur MongoClient.

Quel est le problème? Je n'utilisais pas useUnifiedTopology avant mais maintenant il apparaît dans la console. Je l'ai ajouté à la configuration mais cela me donne toujours cet avertissement, pourquoi? Je n'utilise même pas MongoClient.

Éditer

Comme l'a répondu Felipe Plets, il y avait un problème dans Mongoose et ils ont corrigé ce bug dans les versions ultérieures. Vous pouvez donc résoudre le problème en mettant à jour la version de mongoose.

1voto

yash adhikari Points 53

Cela fonctionne bien pour moi et il n'y a plus d'erreurs.

mongoose
.connect(URL_de_mongodb, {
useUnifiedTopology: true,
useNewUrlParser: true,
})
.then(() => console.log('DB Connected!'))
.catch(err => {
console.log(`Erreur de connexion à la base de données : ${err}`);
});

1voto

Bhanu pratap Points 694

exemple de code de travail pour mongo, lien de référence

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url,{ useUnifiedTopology: true }, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.createCollection("customers", function(err, res) {
    if (err) throw err;
    console.log("Collection créée!");
    db.close();
  });
});

0voto

Miguel Chiau Points 1

J'ai également rencontré le même problème :

  1. J'ai vérifié que j'étais connecté à mongoDB en exécutant la commande suivante dans le terminal :

    brew services start mongodb-community@4.2

    Et j'ai obtenu la sortie suivante :

    Successfully started `mongodb-community`

Instructions pour installer mongodb sur
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ ou https://www.youtube.com/watch?v=IGIcrMTtjoU

  1. Ma configuration était la suivante :

    mongoose.connect(config.mongo_uri, {
        useUnifiedTopology: true,
        useNewUrlParser: true})
        .then(() => console.log("Connected to Database"))
        .catch(err => console.error("An error has occured", err));

Cela a résolu mon problème !

0voto

StarDrop9 Points 169
   const mongo = require('mongodb').MongoClient;

   mongo.connect(process.env.DATABASE,{useUnifiedTopology: true, 
   useNewUrlParser: true}, (err, db) => {
      if(err) {
    console.log('Erreur de base de données : ' + err);
   } else {
    console.log('Connexion réussie à la base de données');
      auth(app, db)
      routes(app, db)

   app.listen(process.env.PORT || 3000, () => {
      console.log("Écoute sur le port " + process.env.PORT);
    });  

}});

0voto

Sanjay kumar Points 1171

Configurer la connexion mongoose avec l'option useUnifiedTopology: true

  import mongoose from 'mongoose';

        const server = '127.0.0.1:27017'; // REMPLACER PAR VOTRE SERVEUR DE BASE DE DONNÉES
        const database = 'NomDB'; // REMPLACER PAR LE NOM DE VOTRE BASE DE DONNÉES
        class Database {
          constructor() {
            this._connect();
          }
          _connect() {
            mongoose.Promise = global.Promise;
            // * Serveur de base de données local *
            mongoose
              .connect(`mongodb://${server}/${database}`, {
                useNewUrlParser: true,
                useCreateIndex: true,
                useUnifiedTopology: true
              })
              .then(
                () => console.log(`version de mongoose: ${mongoose.version}`),
                console.log('Connexion à la base de données réussie'),
              )
              .catch(err => console.error('Erreur de connexion à la base de données', err));   
          }
        }
        module.exports = new Database();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X