Oi, Gabriel! Como vai?
Vendo o erro que apareceu, existem dois pontos importantes acontecendo na sua conexão com o MongoDB Atlas:
1. Erro de DNS com o SRV
O erro: ECONNREFUSED querySrv _mongodb._tcp.projeto1.gxecxab.mongodb.net significa que o Node não conseguiu resolver o endereço DNS do cluster. Isso acontece quando:
- A string de conexão foi alterada incorretamente;
- Foi removido o +srv da URL;
- A conexão não foi configurada corretamente.
No MongoDB Atlas, o recomendado é usar sempre a conexão com +srv. Exemplo correto de conexão:
<pre><code class="language-html">
const mongoose = require("mongoose");
async function conectaBanco() {
try {
await mongoose.connect("mongodb+srv://conta1:senha123@projeto1.gxecxab.mongodb.net/teste");
console.log("Banco conectado");
} catch (erro) {
console.log("Erro de conexao:", erro);
}
}
module.exports = conectaBanco;
</code></pre>
O que esse código faz:
- Importa o mongoose;
- Tenta conectar ao MongoDB Atlas;
- Se conectar, mostra Banco conectado;
- Se falhar, mostra o erro.
2️. String de conexão sem SRV precisa de mais configuracoes
Quando você remove o +srv, precisa informar host, replica set e ssl, algo assim:
<pre><code class="language-html">
mongodb://conta1:senha123@projeto1-shard-00-00.gxecxab.mongodb.net:27017,projeto1-shard-00-01.gxecxab.mongodb.net:27017,projeto1-shard-00-02.gxecxab.mongodb.net:27017/?ssl=true&replicaSet=atlas-xxxxx-shard-0&authSource=admin
</code></pre>
Por isso, no curso, não removemos o +srv**, pois ele simplifica tudo.
Siga esses passos para resolver:
- Entre no MongoDB Atlas
- Clique em Database
- Clique em Connect
- Clique em Drivers
- Copie exatamente a string de conexao
Ela será parecida com:
mongodb+srv://usuario:senha@cluster0.xxxxx.mongodb.net/nomeDoBanco
Depois use no seu código.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.