5-Controladores y Rutas

 

Creando Controladores y Rutas para Autenticación en Node.js

 Estructura del Proyecto

Antes de comenzar, revisemos la organización del proyecto:

Copy
Download
BIENESRAICES_MVC/
├── controllers/
├── node_modules/
├── public/
│   ├── css/
│   │   ├── app.css
│   │   └── tailwind.css
│   ├── img/
│   └── js/
├── routes/
├── views/
│   ├── auth/
│   │   ├── login.pug
│   │   └── registro.pug
│   └── layout/
│       └── index.pug
├── package.json
└── tailwind.config.cjs


En este post, exploraremos cómo estructurar controladores y rutas para un sistema de autenticación básico en Node.js usando Express.

Estructura del Proyecto

Copy
Download
/src
  /controllers
    usuarioController.js
  /routes
    usuarioRoutes.js
  /views
    /auth
      login.pug
      registro.pug

Controlador de Usuarios (usuarioController.js)

El controlador maneja la lógica para renderizar las vistas de login y registro:

javascript
Copy
Download
const formularioLogin = (req, res) => {
  res.render('auth/login', {})
}

const formularioRegistro = (req, res) => {
  res.render('auth/registro', {})
}

export {
  formularioLogin,
  formularioRegistro
}

Explicación:

  • formularioLogin: Renderiza la vista de login ubicada en views/auth/login.pug

  • formularioRegistro: Renderiza la vista de registro ubicada en views/auth/registro.pug

  • Exportamos ambas funciones para usarlas en nuestras rutas

Rutas de Usuario (usuarioRoutes.js)

Las rutas definen los endpoints de nuestra aplicación:

javascript
Copy
Download
import express from "express";
import { formularioLogin, formularioRegistro } from '../controllers/usuarioController.js';

const router = express.Router();

router.get('/login', formularioLogin);
router.get('/registro', formularioRegistro);

export default router;

Explicación:

  • Importamos las funciones del controlador

  • Creamos un router con express.Router()

  • Definimos dos rutas GET:

    • /login que usa formularioLogin

    • /registro que usa formularioRegistro

  • Exportamos el router para usarlo en nuestra aplicación principal

Vistas (Pug)

Tenemos dos vistas básicas:

auth/login.pug

pug
Copy
Download
//- Contenido de tu vista de login aquí

auth/registro.pug

pug
Copy
Download
//- Contenido de tu vista de registro aquí

Integración Completa

Para usar estas rutas en tu aplicación principal, deberías:

  1. Importar el router en tu archivo principal (app.js o server.js)

  2. Usarlo con app.use(), probablemente con un prefijo como:

javascript
Copy
Download
import usuarioRoutes from './routes/usuarioRoutes.js';

// ... otras configuraciones
app.use('/', usuarioRoutes);

Conclusión

Esta estructura proporciona una base sólida para:

  • Separación de preocupaciones (controladores vs rutas vs vistas)

  • Fácil escalabilidad

  • Mantenimiento sencillo

En posts futuros, expandiremos esta funcionalidad para incluir:

  • Procesamiento de formularios

  • Autenticación real con base de datos

  • Validación de datos

  • Manejo de sesiones

¿Qué otras funcionalidades te gustaría ver implementadas en este sistema de autenticación?


Este post explica claramente el código proporcionado y ofrece un contexto útil para los lectores de tu blog. Puedes personalizarlo añadiendo más detalles sobre tu implementación específica o incluyendo capturas de pantalla de las vistas.

Comentarios

Entradas más populares de este blog

4- Template Engines

2-Iniciando un Servidor

1-Iniciar un Proyecto en Node.js