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
- Documentación oficial de Express
- Tutorial de Express.js en MDN
- Curso de Node.js y Express en freeCodeCamp (YouTube)
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
- El servidor se inicia y queda esperando peticiones en
http://localhost:3000
. - 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 camposnombre
yprecio
). -
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.