1
resposta

[Dúvida] Error: queryTxt ETIMEOUT cluster0.2f4vnvq.mongodb.net

Boa noite,

Estou com dificuldades para conectar minha aplicação node.js no MongoDB.

Dependências:

Dependências

Meu código (src/config/dbConnect.js):

import mongoose from "mongoose";


async function conectaNoBancoDeDados() {
    // mongoose.connect("mongodb+srv://admin:admin123@cluster0.2f4vnvq.mongodb.net/livraria?retryWrites=true&w=majority&appName=Cluster0");

    mongoose.connect("mongodb+srv://admin:admin123@cluster0.2f4vnvq.mongodb.net/livraria");
    return mongoose.connection;
};

export default conectaNoBancoDeDados;

Meu código (src/config/app.js):

import conectaNoBancoDeDados from "./config/dbConnect.js";

const conexao = await conectaNoBancoDeDados();

conexao.on("error", (erro) => {
    console.log("Erro de conexão com o banco de dados", erro);
});

conexao.once("open", () => {
    console.log("Conexão com o banco de dados feita com sucesso");
});

MongoDB Atlas - IP:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Erro obtido:

Erro de conexão com o banco de dados Error: queryTxt ETIMEOUT cluster0.2f4vnvq.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (node:internal/dns/callback_resolver:45:19) {
  errno: undefined,
  code: 'ETIMEOUT',
  syscall: 'queryTxt',
  hostname: 'cluster0.2f4vnvq.mongodb.net'
}
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: queryTxt ETIMEOUT cluster0.2f4vnvq.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (node:internal/dns/callback_resolver:45:19) {
  errno: undefined,
  code: 'ETIMEOUT',
  syscall: 'queryTxt',
  hostname: 'cluster0.2f4vnvq.mongodb.net'
}

Node.js v20.11.1
[nodemon] app crashed - waiting for file changes before starting...
1 resposta

Olá, Thiago! Tudo bem?

Testei os trechos de códigos que você compartilhou com adicionando a um código parecido com o desenvolvido em aula para testá-lo, no caso usando uma string de conexão de um banco que tenho no MongoDB Altas, e em nenhum momento acusou o mesmo erro que você recebeu.

Pelo erro Error: queryTxt ETIMEOUT cluster0.2f4vnvq.mongodb.net, parece que sua aplicação está tendo problemas para resolver o DNS do cluster do MongoDB Atlas ou está ocorrendo um timeout na tentativa de conexão, o que me leva a imaginar que o seu problema está relacionado a sua string de conexão, pode ser que você tenha copiado algum trecho dela errado ou faltante.

Então, minha indicação é que acesse o MongoDB Atlas e pegue novamente a string de conexão e coloque no seu código, lembre-se de alterar o parâmetro de senha e selecionar o Cluster que você está usando ao fim link. Segue um gif para guiá-lo no Atlas:

Gif de guia para a seleção da string de conexão do MongoDB Atlas

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.