Estoy tratando de conectarme a mi base de datos MongoDB local que está en la ventana acoplable con nodejs. Mi componente son:
archivo .env
MONGODB_USERNAME = 'accountUser' MONGODB_PASSWORD = 'password' MONGODB_HOST = 'mongodb' MONGODB_DATABASE = 'mydb'Código:
const uri = `mongodb+srv://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@${process.env.MONGODB_HOST}/${process.env.MONGODB_DATABASE}?retryWrites=true&w=majority`; console.log(uri); const client = new MongoClient(uri);Salida de consola
mongodb+srv://accountUser:abc123@mongodb/mydb?retryWrites=true&w=majorityError
MongoParseError: URI does not have hostname, domain name and tld¿Qué puedo estar haciendo mal?
Está tratando de usar un URI SRV cuando debería usar un URI ordinario.
Los URI de SRV tienen los requisitos de seguridad adicionales en los nombres de host (que contiene un mínimo de 3 componentes).
Elimina +srv de tu URI.
1). Vaya a la base de datos, haga clic en editar contraseña y genere una nueva contraseña.
2). Vaya a la base de datos, haga clic en editar contraseña y proporcione solo caracteres y números.
Cómo conectarse a MongoDB Atlas desde una aplicación NestJS:
Deployment seleccione Databases de datosConnectConnect your applicationDRIVER seleccione Node.jsVERSION , seleccione 2.2.12 or later Como D. SM dijo anteriormente, no puede usar un URI con +srv y revertir la versión del controlador es la única forma de generar una cadena de conexión sin +srv .