Comme indiqué, la 3.1.0-beta4
libération du pilote a été "libérée dans la nature" un peu tôt par l'apparence des choses. La version fait partie des travaux en cours pour prendre en charge les nouvelles fonctionnalités de la prochaine version de MongoDB 4.0 et apporter d'autres modifications à l'API.
L'un de ces changements déclenchant l'avertissement actuel est l' useNewUrlParser
option, en raison de certains changements sur la façon dont le passage de l'URI de connexion fonctionne réellement. Plus sur cela plus tard.
Jusqu'à ce que les choses "se calment", il serait probablement conseillé de "fixer " au moins la version mineure pour les 3.0.x
versions:
"dependencies": {
"mongodb": "~3.0.8"
}
Cela devrait empêcher l' 3.1.x
installation de la branche sur des installations "récentes" vers des modules de nœuds. Si vous avez déjà installé une «dernière» version qui est la version «bêta», vous devez nettoyer vos packages (et package-lock.json
) et vous assurer de les transférer vers une 3.0.x
version de série.
Quant à l'utilisation effective des "nouvelles" options d'URI de connexion, la principale restriction est en fait d'inclure le port
dans la chaîne de connexion:
const { MongoClient } = require("mongodb");
const uri = 'mongodb://localhost:27017'; // mongodb://localhost - will fail
(async function() {
try {
const client = await MongoClient.connect(uri,{ useNewUrlParser: true });
// ... anything
client.close();
} catch(e) {
console.error(e)
}
})()
C'est une règle plus "stricte" dans le nouveau code. Le point principal étant que le code actuel fait essentiellement partie du mongodb
code du référentiel "node-native-driver" (npm ), et que le "nouveau code" est en fait importé dumongodb-core
bibliothèque qui "sous-tend" le pilote de nœud "public".
Le point de "l'option" ajoutée est de "faciliter" la transition en ajoutant l'option au nouveau code de sorte que le nouvel analyseur (en fait basé sur url
) soit utilisé dans le code ajoutant l'option et effaçant l'avertissement de dépréciation, et donc vérifiant que vos chaînes de connexion passées sont en fait conformes à ce que le nouvel analyseur attend.
Dans les versions futures, l'analyseur «hérité» serait supprimé, puis le nouvel analyseur sera simplement ce qui est utilisé même sans l'option. Mais à ce moment-là, il est prévu que tout le code existant ait amplement l'occasion de tester leurs chaînes de connexion existantes par rapport à ce que le nouvel analyseur attend.
Donc, si vous souhaitez commencer à utiliser les nouvelles fonctionnalités du pilote au fur beta
et à mesure de leur publication , utilisez les versions disponibles et suivantes et assurez-vous idéalement de fournir une chaîne de connexion valide pour le nouvel analyseur en activant l' useNewUrlParser
option in MongoClient.connect()
.
Si vous n'avez pas réellement besoin d'accéder aux fonctionnalités liées à l'aperçu de la version MongoDB 4.0, épinglez la version à une 3.0.x
série comme indiqué précédemment. Cela fonctionnera comme documenté et "épinglé" cela garantit que les 3.1.x
versions ne sont pas "mises à jour" sur la dépendance attendue jusqu'à ce que vous souhaitiez réellement installer une version stable.
beta
version qui a en quelque sorte été publiée sur npm au cours du week-end. Ne vous en faites pas tant que l'API n'est pas finalisée. Vous avez fait la bonne chose en installant une version stable.