10-Router en Express para tu Blog-b
Router en Express para tu Blog
El router en Express es una herramienta poderosa que nos permite organizar nuestras rutas de manera modular y escalable. En este post, exploraremos cómo implementar un sistema de routing eficiente en nuestras aplicaciones Node.js con Express.
Estructura Básica del Proyecto
Antes de implementar el router, veamos la estructura de nuestro proyecto:
mi-app/
├── public/ # Carpeta de archivos estáticos
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── app.js
│ ├── 404.html
│
├── router/
│ ├── RutasWeb.js
│ ├── Mascotas.js
│
└── views
├── index.ejs
├── mascotas.ejs
└── template/
├── cabecera.ejs
└── footer.ejsConfiguración Básica del Router
Para comenzar, creamos un archivo de rutas (RutasWeb.js) donde definiremos nuestras rutas principales:
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.render("index", {titulo: "mi titulo"})
});
router.get('/servicios', (req, res) => {
res.render("servicios")
});
module.exports = router;Integrando el Router en la Aplicación Principal
En nuestro archivo principal (app.js), importamos y usamos nuestras rutas:
const express = require('express');
const app = express();
// Configuraciones previas...
app.use(express.static(__dirname + "/public"));
// Rutas web
app.use('/', require('./router/RutasWeb'));
// Middleware para manejar errores 404
app.use((req, res, next) => {
res.status(404).render("404", {
titulo: "404",
descripcion: "Título del sitio web"
})
});Prefijos de Ruta
Una ventaja importante del router es que podemos agregar prefijos a nuestras rutas:
app.use('/api', require('./router/RutasWeb'));Esto haría que nuestras rutas se accedan como:
localhost:3000/api/localhost:3000/api/servicios
Creando un Router Específico para Mascotas
Para demostrar la modularidad, creamos un router específico para manejar mascotas:
Archivo
router/Mascotas.js:
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.render("mascotas", {
arrayMascotas: [
{id: 1, nombre: 'rex', descripcion: 'perro'},
{id: 2, nombre: 'yaki', descripcion: 'gato'}
]
})
});
module.exports = router;Integración en
app.js:
app.use('/mascotas', require('./router/Mascotas'));Vista de Mascotas
La vista mascotas.ejs mostraría nuestros datos:
<%- include("template/cabecera") %>
<div class="container">
<% if (arrayMascotas.length > 0) { %>
<table>
<% arrayMascotas.forEach(mascota => { %>
<tr>
<td><%= mascota.id %></td>
<td><%= mascota.nombre %></td>
<td><%= mascota.descripcion %></td>
</tr>
<% }) %>
</table>
<% } %>
</div>
<%- include("template/footer") %>Beneficios de Usar Router
Organización del código: Mantenemos las rutas relacionadas juntas en archivos separados.
Escalabilidad: Podemos añadir nuevas rutas sin saturar el archivo principal.
Prefijos: Facilidad para versionar APIs o agrupar rutas bajo un mismo path.
Mantenibilidad: Más fácil de entender y modificar.
Conclusión
El sistema de routing en Express es fundamental para construir aplicaciones web organizadas y mantenibles. Al modularizar nuestras rutas, mejoramos la estructura del proyecto y facilitamos su crecimiento futuro.
¿Has implementado routers en tus proyectos de Express? ¡Comparte tus experiencias en los comentarios!
*****************************************
Comentarios
Publicar un comentario