1
resposta

[Dúvida] Conexão com BD com erro -> Error: querySrv ENODATA _mongodb. -- Resolvido/Dúvida

Seguindo a aula de conexão inicial ao MongoDB via Mongoose tive um problema na hora da conexão, toda hora apresentava esse erro de ENODATA, o que me deixava encucado já que era um 'suposto' erro de 'não retorno de dados', não parecia ser um erro de conexão propriamente... Dei uma googlada e caí no fórum do MongoDB e também no StackOverflow e pra tentar resumir algumas 'soluções' desse problema e tentar explicar a causa.

Causa: Tudo indica que é/seria a internet/provedor/dns que bloqueava a conexão 'via srv' mongodb+srv://, então as soluções eram:

Alterar o DNS usado na conexão. Algumas pessoas resolveram nesse formato, tentei usar o DNS do google e OpenDNS, mas nenhum funcionou, então pelo menos pra mim essa opção não funcionou.

Alterar o link de conexão para versão 2.2.12 do Node Então, esse funcionou, no caso o protocolo muda para mongodb:// o que me faz achar que o problema era/é realmente o srv.

Então assim... o problema foi resolvido, mas eu não tenho certeza do motivo, então quero tentar entender o que poderia ser, será que seria minha internet bloqueando esse tipo de protocolo?

Conexão mostrada no Vídeo da aula

//mongoose.connect(`mongodb+srv://${username}:${password}@${cluster}.eef4pue.mongodb.net/${dbname}`)
//    .catch(e => console.log(e))

Conexão modificada e funcionando

mongoose.connect(`mongodb://${username}:${password}@ac-udocqcl-shard-00-00.eef4pue.mongodb.net:27017,ac-udocqcl-shard-00-01.eef4pue.mongodb.net:27017,ac-udocqcl-shard-00-02.eef4pue.mongodb.net:27017/${dbname}?ssl=true&replicaSet=atlas-51e6a4-shard-0&authSource=admin&retryWrites=true&w=majority`)
//    .catch(e => console.log(e))

Eu coloquei em variáveis porque estava alterando nos testes e facilitou assim, cheguei a recriar o cluster nos testes.

A, coloquei o .catch pra pegar o erro, mas pelo que entendi da no mesmo do db.on("error", console.log.bind(console, 'Erro de Conexão')), então comentei depois de um tempo, mas deixei no código pra me lembrar disso.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Rafael, tudo bem?

Fico feliz em saber que você conseguiu resolver o problema de conexão com o MongoDB. Realmente, pode ser que o erro tenha sido causado por algum bloqueio na sua conexão de internet ou provedor, como você mencionou. É difícil afirmar com certeza qual foi a causa exata do problema, mas é importante lembrar que, às vezes, alguns protocolos podem ser bloqueados por questões de segurança ou configuração.

De qualquer forma, é ótimo que você tenha encontrado uma solução alternativa para o problema, alterando o link de conexão para a versão 2.2.12 do Node. É sempre bom lembrar que, ao trabalhar com tecnologia, é comum encontrar problemas e desafios, mas a persistência e a busca por soluções são fundamentais para o sucesso.

Espero ter ajudado e bons estudos!