Bueno aquí vamos a crear ya la conexión con Mongodb y crearemos una base de datos
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
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
Publicar un comentario