Estoy aprendiendo Node.js y acabo de empezar a trabajar con MongoDB.
Estoy haciendo una conexión con el MongoDB Cluster que he creado
const dbURI = 'mongodb+srv://testuser:test1234@nodelearning.fzofb.mongodb.net/mydb?retryWrites=true&w=majority'; mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true }) .then((result) => console.log('connected to db')) .catch((err) => console.log(err)); Cuando ejecuto la nodemon app me sale este error:
Error: querySrv ENOTFOUND _mongodb._tcp.mydb.fzofb.mongodb.net en QueryReqWrap.onresolve [como oncomplete] (node:dns:206:19) { errno: indefinido, código: 'ENOTFOUND', syscall: 'querySrv',
nombre de host: '_mongodb._tcp.mydb.fzofb.mongodb.net' }
El error indica que no hay ningún error en el código. Esto te deja con tres posibles posibilidades:
En mi caso, estaba conectado a wifi público en un espacio de coworking. Cambié mi conexión a mi punto de acceso personal y funcionó.
También si tiene su clúster Atlas mongodb inactivo después de un tiempo. Podría pausarse y luego, cuando ejecuta un servidor, devuelve el error que tenía.
Entonces, otra apuesta es iniciar sesión en su cuenta de Atlas y confirmar si no se ha pausado. Bueno, esta opción mía solo debe considerarse después de probar las opciones anteriores.
Debe convertir los caracteres especiales en la contraseña de la cadena de conexión a la codificación porcentual.
Tuve el mismo problema con mongodb-compass. Para mí, era un formato de cadena de conexión incorrecto. Entonces, en mi caso, requirió convertir el símbolo @ en mi contraseña a %40 (codificación porcentual).