El enrutamiento es un concepto fundamental en el desarrollo de aplicaciones web. En Node.js, especialmente cuando se utiliza el framework Express.js, el enrutamiento permite definir cómo una aplicación responde a una solicitud de un cliente en un punto final específico, que es una URI (o ruta) y un método HTTP específico (GET, POST, etc.).

Conceptos Clave

  1. Ruta: Una ruta es una combinación de una URL y un método HTTP (GET, POST, PUT, DELETE, etc.).
  2. Controlador de Ruta: Una función que se ejecuta cuando se accede a una ruta específica.
  3. Parámetros de Ruta: Variables en la ruta que pueden capturar valores específicos de la URL.
  4. Middleware: Funciones que tienen acceso al objeto de solicitud (req), al objeto de respuesta (res) y a la siguiente función de middleware en el ciclo de solicitud/respuesta de la aplicación.

Configuración Básica de Rutas en Express.js

Instalación de Express.js

Antes de comenzar, asegúrate de tener Express.js instalado en tu proyecto. Si no lo tienes, puedes instalarlo usando npm:

npm install express

Creación de un Servidor Básico con Rutas

A continuación, se muestra un ejemplo básico de cómo configurar un servidor Express.js con algunas rutas simples:

// Importar el módulo express
const express = require('express');

// Crear una instancia de la aplicación Express
const app = express();

// Definir una ruta GET en la raíz
app.get('/', (req, res) => {
  res.send('¡Hola, mundo!');
});

// Definir una ruta GET en /about
app.get('/about', (req, res) => {
  res.send('Acerca de nosotros');
});

// Definir una ruta GET con un parámetro de ruta
app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuario ID: ${userId}`);
});

// Iniciar el servidor en el puerto 3000
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Servidor escuchando en el puerto ${PORT}`);
});

Explicación del Código

  1. Importar Express: const express = require('express');

    • Importa el módulo Express para poder utilizarlo en la aplicación.
  2. Crear una Aplicación Express: const app = express();

    • Crea una instancia de la aplicación Express.
  3. Definir Rutas:

    • app.get('/', (req, res) => { ... });: Define una ruta GET en la raíz (/) que responde con "¡Hola, mundo!".
    • app.get('/about', (req, res) => { ... });: Define una ruta GET en /about que responde con "Acerca de nosotros".
    • app.get('/user/:id', (req, res) => { ... });: Define una ruta GET con un parámetro de ruta (:id). El valor del parámetro se puede acceder a través de req.params.id.
  4. Iniciar el Servidor: app.listen(PORT, () => { ... });

    • Inicia el servidor en el puerto especificado (3000 en este caso) y muestra un mensaje en la consola cuando el servidor está listo.

Ejemplo de Rutas con Diferentes Métodos HTTP

Express.js permite definir rutas para diferentes métodos HTTP. Aquí hay un ejemplo que muestra cómo hacerlo:

// Ruta GET
app.get('/data', (req, res) => {
  res.send('Método GET');
});

// Ruta POST
app.post('/data', (req, res) => {
  res.send('Método POST');
});

// Ruta PUT
app.put('/data', (req, res) => {
  res.send('Método PUT');
});

// Ruta DELETE
app.delete('/data', (req, res) => {
  res.send('Método DELETE');
});

Ejercicio Práctico

Ejercicio 1: Crear Rutas Básicas

  1. Crea una nueva aplicación Express.
  2. Define las siguientes rutas:
    • Una ruta GET en / que responda con "Página de inicio".
    • Una ruta GET en /contact que responda con "Página de contacto".
    • Una ruta GET en /user/:name que responda con "Hola, [nombre]", donde [nombre] es el valor del parámetro de ruta.

Solución

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Página de inicio');
});

app.get('/contact', (req, res) => {
  res.send('Página de contacto');
});

app.get('/user/:name', (req, res) => {
  const userName = req.params.name;
  res.send(`Hola, ${userName}`);
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Servidor escuchando en el puerto ${PORT}`);
});

Ejercicio 2: Rutas con Diferentes Métodos HTTP

  1. Define una ruta POST en /submit que responda con "Formulario enviado".
  2. Define una ruta PUT en /update que responda con "Datos actualizados".
  3. Define una ruta DELETE en /delete que responda con "Datos eliminados".

Solución

app.post('/submit', (req, res) => {
  res.send('Formulario enviado');
});

app.put('/update', (req, res) => {
  res.send('Datos actualizados');
});

app.delete('/delete', (req, res) => {
  res.send('Datos eliminados');
});

Conclusión

El enrutamiento en Express.js es una herramienta poderosa que permite definir cómo una aplicación responde a las solicitudes del cliente en diferentes puntos finales. Al comprender y utilizar rutas, parámetros de ruta y diferentes métodos HTTP, puedes crear aplicaciones web robustas y dinámicas. En el próximo módulo, exploraremos cómo manejar errores y utilizar middleware para mejorar aún más nuestras aplicaciones Express.js.

Curso de Node.js

Módulo 1: Introducción a Node.js

Módulo 2: Conceptos Básicos

Módulo 3: Sistema de Archivos y E/S

Módulo 4: HTTP y Servidores Web

Módulo 5: NPM y Gestión de Paquetes

Módulo 6: Framework Express.js

Módulo 7: Bases de Datos y ORMs

Módulo 8: Autenticación y Autorización

Módulo 9: Pruebas y Depuración

Módulo 10: Temas Avanzados

Módulo 11: Despliegue y DevOps

Módulo 12: Proyectos del Mundo Real

© Copyright 2024. Todos los derechos reservados