J'ai une application node / express que j'essaie de connecter à Mongodb Atlas en utilisant mangouste.
Tout mon code est identique à une application précédente que j'avais connectée à Atlas (qui fonctionnait bien). Lorsque je l'exécute sur ma machine de travail (Windows 10), tout fonctionne comme prévu. Cependant, lorsque je l'exécute sur mon MacBook Pro (Mojave), l'application express s'exécute mais la connexion mangouste à Atlas génère l'erreur suivante:
const express = require('express'); const mongoose = require('mongoose'); const app = express(); mongoose .connect( 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop', { useNewUrlParser: true } ) .then(() => console.log('MongoDB Connected...')) .catch(err => console.log(err)); const PORT = process.env.PORT || 5000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
server.js
{ Error: queryTxt EBADNAME development-zv5hp.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19) errno: 'EBADNAME', code: 'EBADNAME', syscall: 'queryTxt', hostname: 'development-zv5hp.mongodb.net' }
Quelle pourrait être la cause de ce problème? J'ai vérifié l'utilisateur et le mot de passe Atlas et j'ai ajouté mon adresse IP à la liste blanche (en fait, j'ai ajouté toutes les adresses IP à la liste blanche).
En utilisant:
3 Réponses :
s'il vous plaît ajouter autoIndex: false ça marche pour moi
mongoose .connect( 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop', {autoIndex: false, useNewUrlParser: true }
Malheureusement, cela n'a fait aucune différence. Lance toujours la même erreur.
L'utilisation du serveur DNS de Google 8.8.8.8
et 8.8.4.4
peut résoudre ce problème
Cela a fonctionné - Merci. De toute évidence, quelque chose avec mon FAI domestique le bloquait. Fait intéressant, si je connectais mon téléphone pour utiliser des données mobiles (fournies par le même FAI), cela fonctionnait avec le DNS par défaut ...
Cette erreur est due au fait que l'URI 'mongodb + srv: // client:
qui a été transmis pour se connecter n'a pas pu être résolu . Votre serveur DNS ne le sait pas et ne peut donc pas résoudre une adresse IP. D'où ebadname.