Este proyecto es un ejemplo de aplicación CRUD (Crear, Leer, Actualizar, Eliminar) que utiliza Node.js y MongoDB. Está diseñado siguiendo los principios de Programación Orientada a Objetos (POO) y SOLID.
- Conexión dinámica a MongoDB.
- Repositorio y servicios desacoplados.
- Manejo de operaciones CRUD:
- Crear documentos.
- Leer documentos.
- Actualizar documentos.
- Eliminar documentos.
- Node.js (versión 20 o superior).
- MongoDB (instalado y corriendo localmente o en un servicio remoto).
- Git (opcional, para clonar el repositorio).
Sigue estos pasos para configurar y ejecutar el proyecto en tu entorno local:
-
Clona este repositorio:
git clone https://github.com/GianPierree/mongo-crud.git cd mongo-crud -
Instala las dependencias necesarias:
npm install
-
Crea un archivo de configuración
.enven la raíz del proyecto. Agrega las siguientes variables de entorno (ajústalas según tu configuración):MONGODB_URI=mongodb://localhost:27017 MONGODB_DB_NAME=your_database_name MONGODB_COLLECTION_NAME=your_collection_name
-
Ejecuta la aplicación en modo producción:
npm run start
-
Ejecuta la aplicación en modo local (pruebas o desarrollo):
npm run local
-
Crear Documento:
Este método inserta un nuevo documento en la colección especificada.
const document = { name: "John Doe", age: 30 }; await userService.createUser(document);
-
Leer Documentos:
Este método consulta documentos en la colección según un filtro.
const query = { age: { $gte: 25 } }; const users = await userService.getUsers(query);
-
Actualizar Documento:
Este método actualiza un documento según el filtro y los datos de actualización.
const filter = { name: "John Doe" }; const update = { age: 35 }; await userService.updateUser(filter, update);
-
Eliminar Documento:
Este método elimina un documento según un filtro.
const filter = { name: "John Doe" }; await userService.deleteUser(filter);
- Provider: Clase para manejar la conexión a MongoDB.
- Repositorio: Maneja las operaciones CRUD directamente sobre la base de datos.
- Servicio: Lógica de negocio que utiliza el repositorio.
- Clase Principal: Orquesta la conexión a la base de datos y la ejecución de las operaciones CRUD.
- SOLID: El proyecto sigue los principios de diseño SOLID para mantener un código modular, escalable y fácil de mantener.
- POO: Las operaciones están encapsuladas en clases para una mejor organización y reusabilidad.
npm run start: Ejecuta la aplicación en modo producción.npm run local: Ejecuta la aplicación en modo desarrollo.
Si deseas contribuir a este proyecto, sigue estos pasos:
- Realiza un fork del repositorio.
- Crea una nueva rama para tu funcionalidad o corrección de errores.
- Envía un pull request con una descripción detallada de tus cambios.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.
Creado por Gian Pierre.