web-dev-qa-db-fra.com

Comment réparer «Erreur: querySrv EREFUSED» lors de la connexion à MongoDB Atlas?

Je suis nouveau sur MongoDB 4.0.6 et j'ai essayé de l'implémenter dans mon site Web en utilisant Node/Express.js, mais lorsque j'essaie de me connecter à mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main Je reçois cette erreur:

{Erreur: querySrv EREFUSED _mongodb._tcp.main-03xkr.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js: 199: 19) errno: 'EREFUSED', code: 'EREFUSED', syscall: 'querySrv' , nom d'hôte: '_mongodb._tcp.main-03xkr.mongodb.net'}

J'ai essayé de me connecter à mongodb://localhost:27017/main, mais cela ne semble fonctionner.

Voici le code pertinent:

require('dotenv').config();
const mongoose = require('mongoose');

// Database
const uri = `mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;
const localURI = 'mongodb://localhost:27017/main';

var Project = require('./models/project');

mongoose.connect(uri, { useNewUrlParser: true });
const db = mongoose.connection;

db.once('open', () => console.log('Successfully connected to MongoDB'));
db.on('error', (e) => console.log(e));

// Routes
app.get('/', (req, res) => {
  Project.find({}, (e, projects) => {
    if (e) console.log(e);

    res.render('home.ejs', {
      projects: projects
    });
  });
});

Est-ce que quelqu'un sait comment corriger cette erreur et peut-être expliquer ce qui se passe ici?

7
Noodles

Vous avez undefined dans votre chaîne de connexion. Je ne sais pas si c'est une faute de frappe ou non. Mais essayez de changer

const uri = `mongodb+srv://undefined:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;

à

const uri = `mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;

J'utilise MongoAtlas pour un projet et cette chaîne (moins l'utilisateur non défini) semble correcte.

0
VtoCorleone

Dans notre cas, l'antivirus/pare-feu bloque,

Essayez de désactiver l'antivirus/pare-feu et vérifiez à nouveau. espérons que cela fonctionnera.

0
Shaik Matheen