54 votes

Comment définir useMongoClient (Mongoose 4.11.0)?

C'est le code que j'utilise pour me connecter à ma base de données:

 private connectDatabase(databaseUri: string): Promise<Mongoose.Connection> {
    return Mongoose.connect(databaseUri).then(() => {
        debug('Connected to MongoDB at %O', databaseUri);
        return Mongoose.connection;
    });
}
 

Aujourd'hui, j'ai mis à jour Mongoose vers la version 4.11.0 et j'ai reçu cet avertissement lors de l'exécution de mes tests:

 (node:4138) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0,
use `openUri()` instead, or set the `useMongoClient` option if using `connect()`
or `createConnection()`
 

Je ne trouve aucune information sur la manière de "définir useMongoClient".

Savez-vous comment?

78voto

Xertz Points 914

Voici comment vous utilisez useMongoClient: mongoose.connect('mongodb://localhost/advisorDemoTestDB', { useMongoClient: true })

29voto

jan basha Points 281

Ajoutez {useMongoClient: true} comme autre argument à connecter ou à la méthode createConnection. Cela dépend de la version de Mangoose que vous utilisez.

 // Using `mongoose.connect`...
var promise = mongoose.connect('mongodb://localhost/myapp', {
  useMongoClient: true,
  /* other options */
});
// Or `createConnection`
var promise = mongoose.createConnection('mongodb://localhost/myapp', {
  useMongoClient: true,
  /* other options */
});
 

12voto

Crisam De gracia Points 128
 mongoose.connection.openUri('mongodb://127.0.0.1/camp_v12')
 

Quelqu'un at-il essayé cela? mon avertissement déconseillé a disparu lorsque j’utilise ceci, c’était dans la documentation

http://mongoosejs.com/docs/connections.html

10voto

yogesh chatrola Points 257

La solution la plus simple consiste à ouvrir votre terminal, à changer votre répertoire en votre projet racine (dossier où package.json est)

Courir:
npm remove mongoose

puis:

npm install mongoose@4.10.8 --save

problème résolu.

La mise à niveau n'est pas toujours la meilleure option.

http://mongoosejs.com/docs/connections.html

7voto

Tiago Bértolo Points 1093

Sans dactylographie, vous pouvez pratiquement ignorer le problème et utiliser Mongoose.connect(databaseUri, { useMongoClient: true }) .

Si vous voulez vraiment éviter d'avoir cet avertissement, évitez la version 4.11.0.

J'ai mis à jour la version 4.11.1 et comme @ types / mongoose @ 4.7.18 ne sont pas encore mis à jour, ils ne mentionnent pas le champ useMongoClient dans le ConnectionOptions , voici comment j'ai importé le module:

 const Mongoose = require('mongoose');
 

Et puis utilisé cette fonction:

 private connectDatabase(databaseUri: string): Promise<any> {
    return Mongoose.connect(databaseUri, { useMongoClient: true })
        .then(() => {
            console.log('Connected to MongoDB at ', databaseUri);
            return Mongoose.connection;
        })
        .catch(err => debug(`Database connection error: ${err.message}`));
}
 

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