Aplicaciones Web con Express, Node.js y MongoDB


 Bueno aquí vamos a crear ya la conexión con Mongodb y crearemos una base de datos



Express, Node.js y MongoDB

Paso1 Vamos adicionar al archivo .env

Aquí colocaremos la linea de conexión  a la base de datos en mi caso tengo de manera local.

MONGODB_URI=mongodb://localhost:27017/MIbaseDatos

Recuerden que cuando iniciamos creando el servidor se adiciona el archivo .env

Paso 2 Crear carpeta Config e instalar mongoose: 

Donde ira el código del archivo con el nombre de Database.js y  mongoose es la dependencia que nos va a ayudar en la conexión con Mongodb


Explorador de Visual Studio

Instalar dependencia npm i mongoose

Paso 2 Agregar codigo al archivo Database.js 

En este código se importa mongoose , se carga las variables de entorno utilizando dotenv.config donde se llama ruta de conexion y se carga en conts url y se crea funcion mongoConnect donde se crea ya la conexión de la base de datos 

import mongoose from "mongoose";
import dotenv from "dotenv";

// Cargar las variables de entorno desde el archivo .env
dotenv.config();

// URL de conexión de MongoDB (obtenida desde las variables de entorno)
const url = process.env.MONGODB_URI;

const mongoConnect = async () => {
try {
mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
});

console.log('Conexión exitosa a MongoDB ');
} catch (error) {
console.error('Error al conectar a MongoDB :', error);
}
};
export default mongoConnect;

los datos de la conexion vienen  process.env.MONGODB_URI y se guardan en url

Nota : con la nueva versión de mongoose no se requiere estas lineas

useNewUrlParser: true,
useUnifiedTopology: true,

Paso 3 importar mongoConect y llamarlo desde desde index.js


import app from "./app.js"
import mongoConnect from './config/Database.js';
import dotenv from "dotenv";

// Cargar las variables de entorno desde el archivo .env
dotenv.config();

// puerto (obtenida desde las variables de entorno)
const puerto = process.env.PORT || 3000; // Utiliza el puerto 3000 si no se encuentra en .env

//Conexion a Mongodb
mongoConnect();


//http://localhost:3000
app.get("/",(req,res) =>{
res.send('Hola Mundo');
});

//http://localhost:3000/ruta1
app.get("/ruta1", (req, res) => {
res.send('¡Hola desde otra ruta!');
});

// Ruta con parámetros , http://localhost:3000/usuario/Juan
app.get("/usuario/:id", (req, res) => {
const userId = req.params.id;
res.send(`Hola, usuario ${userId}!`);
});



// Middleware para manejar errores 404 (Not Found)
app.use((req, res, next) => {
const error = new Error(`La ruta '${req.originalUrl}' no fue encontrada en el servidor.`);
error.status = 404;
next(error);
});

// Middleware de manejo de errores
app.use((err, req, res, next) => {
res.status(err.status || 500);
res.json({
error: {
status: err.status || 500,
message: err.message || 'Internal Server Error',
},
});
});


// Iniciar el servidor y escuchar en el puerto especificado
app.listen(puerto, () => {
console.log(`Conectado en el puerto:${puerto}`);
});


Paso 4 Instalar dotenv para configurar variables de entorno con npm i doctenv
 

Paso 5 Crear el archivo .env en la raiz del proyecto y agregar las variables de entorno

MONGODB_URI=mongodb://localhost:27017/my_database

Paso 6 Cargar las variables en Database.js  

  • Se importa dotenv
  • Se carga la variables con dotenv.config
  • Se crea una variable uri donde llega contenido de .env con process.env.MONGODB_URI
  • En mongoose.connect se reemplaza ruta anterior por uri
import mongoose from "mongoose";
import dotenv from "dotenv";

// Cargar las variables de entorno desde el archivo .env
dotenv.config();

// URL de conexión de MongoDB (obtenida desde las variables de entorno)
const url = process.env.MONGODB_URI;

const mongoConnect = async () => {
try {
mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
});

console.log('Conexión exitosa a MongoDB ');
} catch (error) {
console.error('Error al conectar a MongoDB :', error);
}
};
export default mongoConnect;


Listo se Crea la conexión a mongodb y se coloca la ruta de conexión en un archivo .env. De esta forma se puede tener una conexión segura y fuera del código fuente principal de la aplicación.

Esta entrada fue creada en Junio y  mejore la conexión utilizando el método Singleton  

Comentarios