J'essaie de me connecter à Atlas MongoDB avec l'URI suivant (fourni par la chaîne de connexion mongodb)
{ MongoNetworkError: connection 3 to cluster0-shard-00-00-un6sk.mongodb.net:27017 closed at TLSSocket.<anonymous> (C:\Users\KARTIT Ismail\Desktop\devconnector\node_modules\mongodb-core\lib\connection\connection.js:352:9) at Object.onceWrapper (events.js:273:13) at TLSSocket.emit (events.js:182:13) at _handle.close (net.js:606:12) at TCP.done (_tls_wrap.js:386:7) name: 'MongoNetworkError', errorLabels: [ 'TransientTransactionError' ], [Symbol(mongoErrorContextSymbol)]: {} }
J'obtiens l'erreur suivante:
module.exports = { mongoURI:'mongodb+srv://<user>:<password>@cluster0-un6sk.mongodb.net/test? retryWrites=true' }; //connect to mongoose mongoose .connect(db) .then( ()=>console.log('mongoDB connected')) .catch(err => console.log(err));
5 Réponses :
Pour vous connecter à Atlas MongoDB, vous devez configurer la liste blanche IP. Accédez au site Web de MongoDB Atlas, connectez-vous. Ensuite, dans la vue Clusters, sélectionnez l'onglet Sécurité, puis Liste blanche IP. Vous verrez une adresse IP. Cliquez sur le bouton "Modifier" puis sur "Adresse IP actuelle". Appuyer sur OK. Redémarrez ensuite votre serveur.
Lien utile: https: //docs.atlas.mongodb .com / security-whitelist / # add-whitelist-entries
Quelle version de mangouste utilisez-vous? Les versions de mongoose inférieures à la version 5.0.15 ne semblent pas prendre en charge l'URL du serveur mongodb + srv: //
.
L'autre problème courant concerne les adresses IP sur liste blanche.
Assurez-vous d'avoir ajouté votre adresse IP à la liste blanche dans le panneau de configuration d'Atlas.
Vous pouvez saisir 0.0.0.0
, si vous souhaitez autoriser l'accès depuis n'importe quel hôte.
Ensuite, vous pouvez avoir une chaîne de connexion comme ci-dessous:
var connectionString= 'mongodb://<username>:<password>@<clustername>/<dbname>?ssl=true&replicaSet=<replica setname>&authSource=admin'; var db = mongoose.connect(connectionString).catch((error) => { console.log(error); });
J'ai utilisé votre solution en autorisant l'accès depuis n'importe quel hôte et cela a fonctionné! Merci Monsieur
Ajoutez simplement l'adresse IP de l'interface utilisateur Atlas à la liste blanche, pas besoin de redémarrer l'application.
Ajoutez l'adresse IP à la liste blanche, la meilleure option permet l'accès depuis n'importe quel hôte, je crois que tout le monde a installé mongoose, sinon utilisez cette commande
const mongoose = require('mongoose'); const conStr = 'mongodb+srv://lord:<password>@cluster5-eeev8.mongodb.net/test?retryWrites=true&w=majority' const DB = conStr.replace( '<password>', myPass ); const DB = conStr.replace( 'test', myDatabaseName ); //remember mongoose.connect() return promise mongoose .connect(DB, { usedNewUrlParser: true, useCreateIndex: true, useFindAndModify: false, }) .then((con) => { console.log(con.connection); console.log('DB connection successful'); });
Copiez d'abord la chaîne de connexion de votre application à partir de mongodb. com -> clusters-> connect-> connectez votre application
Maintenant, choisissez le pilote Node.js et la dernière version, maintenant copiez la chaîne de connexion.
Maintenant connection.js
XXX
Veuillez masquer votre URL de connexion pour des raisons de sécurité.
opps! Je l'ai édité. c'est juste pour un prototype cependant, merci