
Felipe Carrión
PreguntaLa verdad no pude con la conexión a mongo Atlas, intente con compass y genera un timeout pero este problema lo vengo arrastrando desde el curso de nodeJs, asi que decidí continuar con la base de datos local.
Dejo mi error por si alguien sabe a que se debe mi error es el siguiente:
MongoError: MongoClient must be connected before calling MongoClient.prototype.db at MongoClient.db (C:\Users\CarriCas\Documents\Platzi\Express\node_modules\mongodb\lib\mongo_client.js:313:11) at C:\Users\CarriCas\Documents\Platzi\Express\lib\mongo.js:27:29 at C:\Users\CarriCas\Documents\Platzi\Express\node_modules\mongodb\lib\utils.js:722:9 at C:\Users\CarriCas\Documents\Platzi\Express\node_modules\mongodb\lib\mongo_client.js:223:23 at C:\Users\CarriCas\Documents\Platzi\Express\node_modules\mongodb\lib\operations\connect.js:279:21 at QueryReqWrap.callback (C:\Users\CarriCas\Documents\Platzi\Express\node_modules\mongodb\lib\core\uri_parser.js:86:18) at QueryReqWrap.onresolve [as oncomplete] (dns.js:203:10)
Intente solucionarlo con las siguientes url pero no tuve exito:
const MONGO_URI = `mongodb://${USER}:${PASSWORD}@${config.dbHost}:${config.dbPort}/?authSource=${DB_NAME}`; // prettier-ignore
mongodb+srv://${USER}:${PASSWORD}@${config.dbHost}/${DB_NAME}?retryWrites=true&w=majority
- Asegúrate que tus variables de entorno se carguen correctamente
- Revisa las credenciales que estás poniendo de Mongo Atlas
- Revisar que tu Mongo Atlas acepte conexión de todos los orígenes o desde tu IP

Luis Lira
Si las conexiones te las está rechazando también en Compass debería revisar la pestaña de "Network Access" en Mongo Atlas, ahí es donde configuras desde qué IP se pueden conectar. Si la dejas como
0.0.0.0/0

Fer Torres
Hola. ¿Tienes tu código en algún lugar que podamos revisar? Mientras tanto, te comparto mi código, que fue sin usar el puerto. Avísannos si funcionó y en qué más te podemos ayudar.
const { MongoClient, ObjectId } = require("mongodb"); const { config } = require("../config"); const USER = encodeURIComponent(config.dbUser); const PASSWORD = encodeURIComponent(config.dbPassword); const DB_NAME = config.dbName; // Line from the course: // const MONGO_URI = `mongodb://${USER}:${PASSWORD}@${config.dbHost}:${config.dbPort}/?authSource=${DB_NAME}`; // Line that actually works: const MONGO_URI = `mongodb+srv://${USER}:${PASSWORD}@${config.dbHost}/${DB_NAME}?retryWrites=true&w=majority`;

Felipe Carrión
Muchas gracias compañeros por contestar, voy a intentar revisar las variables de entorno, porque las demás opciones ya las he probado...el problema también va a a que mi conexión es rechazada desde mongo compass y tambien desde la terminal.

Luis Lira
Hola!
Yo escribe la conexión de Mongo de esta manera
const MONGO_URI = `mongodb+srv://${USER}:${PASSWORD}@${DB_HOST}/${DB_NAME}?retryWrites=true&w=majority`
Aunque si tienes error podría deberse a varias casos.

Carlos Valdez
Declarala de la siguiente manera.
const MONGO_URI = `mongodb+srv://${USER}:${PASSWORD}@${config.dbHost}/${DB_NAME}`;