Saltar a contenido

Express.js

Express es un framework minimalista y flexible para Node.js que facilita la creación de servidores web y APIs. Es conocido por su simplicidad, rapidez y amplia adopción en la comunidad de desarrollo.

¿Por qué usarlo?

Express nos ayuda a manejar las rutas del backend, gestionar middleware, definir los endpoints que conectarán tu aplicación con la base de datos y el frontend, y ofrece un potente sistema de enrutamiento.

Recursos para aprender Express.js

Conceptos clave

  • Configuración inicial de un servidor Express.
  • Creación de rutas (GET, POST, PUT, DELETE).
  • Middleware: Qué son y cómo funcionan.
  • Integración con motores de plantillas.
  • Manejo de errores y excepciones.
  • Conexión con bases de datos (MongoDB para stack MERN).
  • Uso de herramientas como Postman para probar endpoints.

Ejemplo básico de Express.js

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

app.get('/', (req, res) => {
  res.send('¡Hola mundo con Express!');
});

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

Explicación del ejemplo

Importación y configuración

  • const express = require('express');: Importa el módulo Express.
  • const app = express();: Crea una instancia de la aplicación Express.
  • const port = 3000;: Define el puerto donde se ejecutará el servidor.

Creación de ruta principal

app.get('/', (req, res) => { ... });: Define una ruta para la raíz del sitio web (/) utilizando el método HTTP GET. Cuando alguien accede a esta ruta, el servidor responde con el texto "¡Hola mundo con Express!".

Iniciar el servidor

app.listen(port, () => { ... });: Inicia el servidor y lo pone a escuchar en el puerto 3000. Muestra un mensaje en la consola indicando que el servidor está funcionando.

Qué sucede al ejecutar

  1. El servidor se inicia y queda esperando peticiones en http://localhost:3000.
  2. Si alguien accede a esa dirección, mostrará "¡Hola mundo con Express!".

Este es un ejemplo básico que ilustra cómo funciona Express.js y cómo se pueden definir rutas y manejar peticiones.

Retos prácticos

Reto 1: Configurar un servidor Express

Configura un servidor básico utilizando Express que:

  • Responda con "¡Servidor Express en funcionamiento!" al acceder a la ruta raíz (/).

  • Incluye un puerto definido mediante una variable de entorno (usa dotenv para cargarla).

Reto 2: Crear y probar rutas básicas

  • Añade al servidor Express las siguientes rutas:

    • GET /productos: Responde con un array de productos ficticios (nombre y precio).
    • POST /productos: Responde con el mensaje "Producto añadido exitosamente".
    • DELETE /productos/:id: Responde con el mensaje "Producto eliminado con ID: [id]".
  • Usa Postman para probar las rutas creadas y documenta los resultados en la Wiki.

Reto 3: Middleware personalizado

Crea un middleware que registre en la consola:

  • La hora exacta en la que se accede a una ruta.
  • La ruta solicitada.
  • El método HTTP utilizado.

Ejemplo de salida en consola:

[2024-11-19 10:00:00] Ruta: /productos, Método: GET

Pista: Usa el método app.use para definir el middleware.

Reto 4: Manejo de errores

Implementa un middleware para manejar errores en el servidor:

  • Devuelve un mensaje claro y un código de estado HTTP 500 cuando ocurra un error.
  • Simula un error en una ruta específica (/error) para probar el middleware.

Ejemplo de respuesta:

{ "error": "Algo salió mal. Intenta nuevamente más tarde." }

Reto 5: Conexión inicial con MongoDB

  • Configura tu servidor Express para conectarse a una base de datos MongoDB utilizando Mongoose.

  • Crea un modelo para un recurso básico, como Producto (con los campos nombre y precio).

  • Implementa una ruta GET /api/productos que devuelva todos los productos almacenados en la base de datos.

Pista: Puedes usar la conexión creada en el reto de MongoDB.

Estos retos te prepararán para integrar Express con MongoDB y React en el proyecto MERN.