17 votes

Erreur de connexion à MongoDB : MongoTimeoutError : La sélection du serveur a expiré après 30000 ms

J'essaie de créer une application fullstack en lisant le tutoriel suivant :

https://medium.com/javascript-in-plain-english/full-stack-mongodb-react-node-js-express-js-in-one-simple-app-6cc8ed6de274

J'ai suivi toutes les étapes et j'ai essayé de m'exécuter :

node server.js

Mais j'ai obtenu l'erreur suivante :

Erreur de connexion à MongoDB : MongoTimeoutError : La sélection du serveur a expiré après 30000 ms at Timeout._onTimeout ( C:\RND\fullstack_app\backend\node_modules\mongodb\lib\core\sdam\server_selection.js :308:9) at listOnTimeout (internal/timers.js:531:17) at processTimers (internal/timers.js:475:7) { name : 'MongoTimeoutError', reason : Error : connect ETIMEDOUT 99.80.11.208:27017 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) {nom : 'MongoNetworkError'. name : 'MongoNetworkError', [Symbole(mongoErrorContextSymbol)] : {} }, [Symbole(mongoErrorContextSymbol)] : {} } (node:42892) UnhandledPromiseRejectionWarning : MongoTimeoutError : La sélection du serveur a expiré après 30000 ms at Timeout._onTimeout ( C:\RND\fullstack_app\backend\node_modules\mongodb\lib\core\sdam\server_selection.js :308:9) at listOnTimeout (internal/timers.js:531:17) at processTimers (internal/timers.js:475:7)

Mon code dans server.js est le suivant :

const mongoose = require('mongoose');
const router = express.Router();

// this is our MongoDB database
const dbRoute =
    'mongodb+srv://user:<password>@cluster0-3zrv8.mongodb.net/test?retryWrites=true&w=majority';

mongoose.Promise = global.Promise;

// connects our back end code with the database
mongoose.connect(dbRoute, 
    {   useNewUrlParser: true,
        useUnifiedTopology: true
    });

let db = mongoose.connection;

db.once('open', () => console.log('connected to the database'));

Des suggestions ?

2voto

Kushal Points 21

Mettez votre adresse IP de connexion sur une liste blanche. Atlas n'autorise les connexions clients au cluster qu'à partir des entrées de la liste blanche du projet. La liste blanche du projet est distincte de la liste blanche de l'API, qui restreint l'accès à l'API à des adresses IP ou CIDR spécifiques.

NOTE

Vous pouvez sauter cette étape si Atlas indique dans l'étape de configuration de la sécurité de la connexion que vous avez déjà configuré une entrée de liste blanche dans votre cluster. Pour gérer la liste blanche d'adresses IP, voir Ajouter des entrées à la liste blanche.

Si la liste blanche est vide, Atlas vous invite à ajouter une adresse IP à la liste blanche du projet. Vous pouvez soit :

Cliquez sur Ajouter votre adresse IP actuelle pour ajouter votre adresse IP actuelle à la liste blanche.

Cliquez sur Ajouter une adresse IP différente pour ajouter une adresse IP unique ou une plage d'adresses notées CIDR.

Pour les clusters Atlas déployés sur Amazon Web Services (AWS) et utilisant le peering VPC, vous pouvez ajouter un groupe de sécurité associé au VPC pair.

Vous pouvez fournir une description facultative pour l'adresse IP ou la plage CIDR nouvellement ajoutée. Cliquez sur Ajouter une adresse IP pour ajouter l'adresse à la liste blanche.

1voto

dkovskij Points 11

Essayez de spécifier le pilote de nœud, version 2,2,12 dans le cluster --> connect --> connectez votre application. la nouvelle chaîne doit être avec mongodb://. utilisez cette chaîne pour vous connecter. n'oubliez pas d'entrer un mot de passe

1voto

basil faheem Points 11

Parfois, cela se produit également lorsque vos services MongoDB sont désactivés.

Voici les étapes à suivre pour activer les services MongoDB :

  1. Fenêtre de presse key + R pour ouvrir la fenêtre Exécuter.
  2. Puis tapez services.msc pour ouvrir la fenêtre des services.
  3. Ensuite, sélectionnez le serveur MongoDB, cliquez dessus avec le bouton droit de la souris, et enfin cliquez sur le bouton start .

0voto

J'ai eu ce problème, pour moi la solution était de vérifier si mon ip était configuré correctement et avant de confirmer dans cet écran.

Entrez la description de l'image ici

0voto

vaibhav Points 101

S'il vous plaît Vérifiez votre mot de passe, votre nom d'utilisateur ou votre configuration IP . Le plus souvent, le message "Server selection timed out after 30000 ms at Timeout._onTimeout" apparaît lorsque les éléments ci-dessus ne correspondent pas à la configuration de votre serveur.

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