litepath
Version:
Microframework ligero para Node.js
50 lines (39 loc) • 1.82 kB
JavaScript
// db.js
// Este archivo se encarga de configurar y manejar la conexión a MongoDB
// utilizando el cliente oficial de MongoDB para Node.js.
const { MongoClient } = require('mongodb'); // Importa el cliente de MongoDB
// URL de conexión a MongoDB (en este caso, un servidor local)
const MONGO_URL = 'mongodb://localhost:27017';
// Nombre de la base de datos que se usará
const DB_NAME = 'miDB';
// Se crea una instancia del cliente de MongoDB usando la URL de conexión
const client = new MongoClient(MONGO_URL);
// Esta variable almacenará la instancia de la base de datos una vez conectada
let dbInstance = null;
/**
* Función que establece la conexión con MongoDB.
* - Si es la primera vez que se llama, se conecta y guarda la instancia.
* - Si ya existe una conexión previa, reutiliza la instancia existente.
*
* @returns {Promise<Db>} Instancia de la base de datos lista para usar.
*/
async function connect() {
if (!dbInstance) { // Solo conecta si aún no hay instancia creada
try {
// 1. Conecta al servidor de MongoDB
await client.connect();
// 2. Obtiene la referencia a la base de datos especificada
dbInstance = client.db(DB_NAME);
// 3. Mensaje de confirmación en la consola
console.log(`✅ Conectado a la base de datos "${DB_NAME}"`);
} catch (err) {
// Si ocurre un error al conectar, se muestra en la consola
console.error('❌ Error conectando a MongoDB:', err.message);
throw err; // Lanza el error para que pueda ser manejado por quien llame la función
}
}
// Devuelve la instancia de la base de datos (ya conectada o reutilizada)
return dbInstance;
}
// Exporta la función connect para que pueda usarse en otros archivos
module.exports = { connect };