https://github.com/muke78/backend_sequelize
Backend hecho con express y ORM de sequelize para pequeños ambientes de prueba y generacion de pruebas en migraciones y rapidez en la construccion de las consultas
https://github.com/muke78/backend_sequelize
express morgan nodemon pg pg-hstore sequelize
Last synced: 3 days ago
JSON representation
Backend hecho con express y ORM de sequelize para pequeños ambientes de prueba y generacion de pruebas en migraciones y rapidez en la construccion de las consultas
- Host: GitHub
- URL: https://github.com/muke78/backend_sequelize
- Owner: muke78
- Created: 2025-07-30T05:13:14.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-30T10:42:07.000Z (11 months ago)
- Last Synced: 2025-09-04T20:11:56.686Z (10 months ago)
- Topics: express, morgan, nodemon, pg, pg-hstore, sequelize
- Language: JavaScript
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Backend Sequelize
## 🚀 Descripción
Proyecto de backend construido con **Node.js**, **Express** y **Sequelize**. Está enfocado en mostrar un enfoque limpio y modular para administrar datos en bases de datos SQL (como PostgreSQL, MySQL o SQLite), utilizando el patrón **Repository** y **TypeScript**.
**Puntos clave:**
- Organización mediante modelo-repositorio-controlador.
- Se usa el patrón *Repository* para separar la lógica de acceso a datos de los modelos y controladores, lo que mejora la mantenibilidad del código.
- Soporta asociaciones entre modelos, migraciones, hooks y transacciones con Sequelize v6 ([documentación](https://sequelize.org/docs/v6/)).
---
## 📁 Estructura del proyecto
```text
.
├── src/
│ ├── models/ # definición de modelos con Sequelize
│ ├── repositories/ # clases de acceso a datos (repository pattern)
│ ├── controllers/ # lógica de negocio y endpoints
│ ├── routes/ # definición de rutas HTTP
│ ├── migrations/ # archivos para esquema de base de datos
│ ├── seeders/ # datos de prueba
│ └── config/ # configuración de conexión, variables de entorno, etc.
├── .sequelizerc
├── config.js/.ts
├── package.json
└── tsconfig.json
```
---
## ⚙️ Instalación y uso
- Clona el repositorio:
```bash
git clone https://github.com/muke78/Backend_Sequelize.git
cd Backend_Sequelize
```
- Instala dependencias:
```bash
pnpm i
```
- Levanta el servidor en modo desarrollo:
```bash
pnpm dev
```
---
## ⚖️ Patrones de desarrollo utilizados
- Repository pattern: abstrae la lógica de operaciones CRUD del acceso directo a los modelos.
- Hooks de Sequelize: lógica que se ejecuta antes o después de eventos como create, update, destroy.
- Transacciones: operaciones atómicas con manejo de errores.
- Relaciones entre modelos: uso de asociaciones hasMany, belongsTo, many-to-many.
---
## 🧑💻 Ejemplo de uso
```js
// src/controllers/UserController.ts
import { Request, Response } from 'express';
import { UserRepository } from '../repositories/UserRepository';
export const getUsers = async (req: Request, res: Response) => {
const repo = new UserRepository();
const users = await repo.findAll({ include: ['profile', 'roles'] });
res.json(users);
};
```