≡En resumen
- Express.js es el framework web más conocido de Node.js: añade rutas, middleware y utilidades HTTP sin imponer una estructura.
- Todo en Express es middleware: funciones que reciben la petición, la respuesta y next() y se ejecutan en orden.
- Express 5 salió el 9 de septiembre de 2024, exige Node.js 18 o superior y captura los errores de funciones async.
- Es ideal para APIs REST y backends a medida; para proyectos grandes muchos equipos usan NestJS, que por defecto funciona sobre Express.
- Es gratuito y de código abierto, pero la seguridad depende de ti: versiones al día, Helmet, validación de entradas y buenas prácticas.
01 ¿Qué es Express.js?
Node.js permite ejecutar JavaScript fuera del navegador, pero su módulo HTTP nativo es de bajo nivel: tendrías que interpretar URL, cabeceras y cuerpos a mano. Express añade esa capa que falta sin imponer una arquitectura, por eso se describe a sí mismo como un framework «rápido, sin opiniones y minimalista».
Lo creó TJ Holowaychuk en 2010, inspirado en Sinatra, un microframework de Ruby. En 2014 su gestión pasó a StrongLoop, que IBM compró en 2015; en 2016 el proyecto se trasladó a la Node.js Foundation, hoy integrada en la OpenJS Foundation.
02 Para qué sirve Express.js
APIs REST y JSON
Su uso más habitual: endpoints que reciben y devuelven JSON para una web, una app móvil o un servicio externo.
Backends de aplicaciones web
Gestiona sesiones, autenticación, subida de archivos y conexión con bases de datos como MongoDB o PostgreSQL.
Webs renderizadas en servidor
Genera HTML con motores de plantillas como Pug o EJS, útil para paneles internos o webs sencillas.
Microservicios y proxies
Servicios pequeños que hacen una sola tarea, webhooks o pasarelas entre sistemas.
Prototipos y MVP
Permite tener un backend funcional en horas, algo valioso cuando se valida una idea.
Base de otros frameworks
NestJS usa Express como adaptador HTTP por defecto, así que aprender Express ayuda a entender lo que hay debajo.
Es la «E» de los stacks MEAN y MERN (MongoDB, Express, Angular o React y Node.js), en los que todo el proyecto usa JavaScript, del navegador a la base de datos con MongoDB. Cuando necesitas conectar una web o una app con otros sistemas, lo normal es exponer una API REST construida con Express o un framework similar.
03 Cómo funciona: rutas, middleware y un ejemplo de código
Una aplicación Express se basa en dos piezas. Las rutas asocian un método HTTP y una ruta (GET /, POST /pedidos) con una función. El middleware son funciones con la forma (req, res, next) que se ejecutan en orden: pueden leer o modificar la petición, responder o pasar el control a la siguiente con next().
const express = require('express');const app = express();app.use(express.json());app.get('/productos', (req, res) => res.json([{ id: 1, nombre: 'Camiseta' }]));app.listen(3000);
La tercera línea es un middleware integrado que interpreta los cuerpos JSON; la cuarta es una ruta; la última arranca el servidor en el puerto 3000. Con el mismo patrón añadirías app.post('/pedidos', ...) para crear pedidos o un middleware propio que compruebe un token antes de dejar pasar la petición a las rutas privadas.
-
1
Instala Node.js
Para Express 5 necesitas Node.js 18 o superior. Compruébalo con node -v.
-
2
Crea el proyecto
En una carpeta nueva ejecuta npm init -y para generar el package.json.
-
3
Instala Express
Ejecuta npm install express; hoy instala la rama 5 por defecto.
-
4
Escribe tu primera ruta
Crea un archivo app.js con el ejemplo anterior y define las rutas que necesites.
-
5
Arranca y prueba
Lanza node app.js y abre http://localhost:3000/productos en el navegador o con curl.
04 Express 5: qué cambia respecto a Express 4
Express 5.0.0 se publicó el 9 de septiembre de 2024, diez años después de que se abriera su propuesta, y el equipo lo anunció oficialmente el 15 de octubre de 2024. El 31 de marzo de 2025 la versión 5.1.0 pasó a ser la etiqueta latest de npm, es decir, la que se instala por defecto.
| Aspecto | Express 4 | Express 5 |
|---|---|---|
| Versión de Node.js | Compatible con versiones muy antiguas | Node.js 18 o superior |
| Errores en funciones async | Hay que capturarlos a mano y llamar a next(err) | Una promesa rechazada se trata como next(err) automáticamente |
| Sintaxis de rutas | path-to-regexp 0.x, admite expresiones regulares en parámetros | path-to-regexp 8: comodines con nombre (*nombre) y opcionales con llaves |
| Métodos retirados | app.del(), res.sendfile(), res.send(estado, cuerpo) | Usa app.delete(), res.sendFile() y res.status().send() |
| Estado de soporte | Mantenimiento desde el 1 de abril de 2025 | Rama activa |
05 Ventajas, desventajas y alternativas a Express
| Ventajas | Desventajas |
|---|---|
| Curva de aprendizaje suave y mucha documentación | No impone estructura: en proyectos grandes cada equipo inventa la suya |
| Ecosistema enorme de middleware en npm | La calidad y el mantenimiento de los middleware varían mucho |
| Flexible para APIs, webs y microservicios | No es el más rápido en pruebas de rendimiento frente a Fastify |
| Gratuito, MIT y con gobernanza abierta | Seguridad y validación dependen de configurarlas bien |
NestJS
Framework con arquitectura por módulos y TypeScript; por defecto funciona sobre Express y puede usar Fastify.
Fastify
Enfocado en rendimiento y validación de esquemas JSON, con una API parecida a Express.
Koa
Creado por el equipo original de Express, más minimalista y pensado desde el principio para async/await.
Hono
Ligero y pensado para funcionar en varios entornos, como Node.js, Deno, Bun o plataformas edge.
06 Buenas prácticas para usar Express en producción
- ✓Usa una versión con soporte (Express 5, o Express 4 solo mientras migras) y actualiza dependencias con frecuencia.
- ✓Añade cabeceras de seguridad con Helmet y limita el tamaño de los cuerpos que aceptas.
- ✓Valida y sanea toda entrada de usuario antes de usarla en consultas a la base de datos.
- ✓Define NODE_ENV=production y activa la compresión gzip o Brotli, o delega en el proxy inverso.
- ✓Centraliza el manejo de errores en un middleware final y no muestres trazas al usuario.
- ✓Registra peticiones y errores con un logger estructurado y monitoriza el proceso con un gestor como PM2 o contenedores.
Express es una buena elección cuando necesitas un backend propio para una web, un panel interno o el servidor de una app, y encaja en proyectos de desarrollo de aplicaciones web a medida o en el backend que da servicio al desarrollo de aplicaciones móviles. Si dudas entre construir o contratar una herramienta, compara antes software a medida o SaaS.
Preguntas frecuentes sobre Express.js
Es un framework web minimalista para Node.js que facilita crear servidores, APIs y aplicaciones web con JavaScript mediante rutas y middleware.
Sobre todo para construir APIs REST y backends: recibir peticiones HTTP, aplicar lógica, consultar una base de datos y devolver JSON o HTML.
Node.js es el entorno que ejecuta JavaScript en el servidor. Express es una librería que se instala sobre Node.js para simplificar el manejo de rutas, peticiones y respuestas.
Es backend. Se ejecuta en el servidor y suele comunicarse con un frontend hecho en React, Angular, Vue o con una app móvil.
Sí. Es software libre con licencia MIT y puedes usarlo en proyectos comerciales sin coste.
Express 5, que es la versión por defecto en npm desde marzo de 2025 y requiere Node.js 18 o superior. Express 4 está en fase de mantenimiento.
Express si quieres algo ligero y flexible o un proyecto pequeño. NestJS si buscas una arquitectura estructurada con TypeScript para un equipo grande; además, por defecto funciona sobre Express.
Fuentes consultadas
Sobre el autor
Germán Gutiérrez
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil en LinkedIn ↗