Creando nuestro primer servidor con Express
En la clase anterior vimos qué es Express y por qué tiene sentido introducirlo cuando nuestra API empieza a crecer y el servidor nativo se vuelve difícil de mantener.
En esta clase damos el siguiente paso: crear nuestro primer servidor con Express y dejar atrás el servidor HTTP hecho a mano.
Punto de partida
Hasta ahora teníamos un servidor creado con node:http, donde:
- Comprobábamos manualmente el método (
GET,POST…). - Comparábamos el
pathname. - Gestionábamos cabeceras a mano.
- Enviábamos la respuesta manualmente.
Todo funcionaba, pero el código empezaba a ser largo y repetitivo. La idea ahora es replicar ese servidor, pero usando Express.
Instalación de Express
Lo primero es instalar Express en el proyecto usando npm:
npm install express
Nota: A partir de aquí ya podemos importar Express y crear nuestra aplicación.
Creando la aplicación de Express
En lugar de crear un servidor con createServer, ahora creamos una instancia de una aplicación de Express:
import express from 'express'
const app = express()
Esta app será nuestro servidor y el núcleo de nuestra aplicación.
Levantando el servidor
Para escuchar en un puerto, Express nos proporciona directamente el método listen:
const PORT = process.env.PORT ?? 1234
app.listen(PORT, () => {
console.log(`Servidor escuchando en http://localhost:${PORT}`)
})
Ya no necesitamos createServer ni callbacks manuales complejos. Es mucho más directo.
Definiendo una primera ruta
En lugar de usar condicionales if o switch para el enrutamiento, Express nos permite definir rutas directamente usando métodos:
app.get('/', (req, res) => {
res.send('Hola mundo desde Express')
})
Aquí pasan varias cosas importantes:
- Usamos
app.getpara manejar peticionesGET. - No comprobamos el método manualmente.
- No cerramos la respuesta a mano con
res.end(). - Express se encarga de todo el ciclo de la petición.
Comparación con el servidor nativo
Al usar Express:
- No hay
ifpara validar el método. - No hay parsing manual de la URL.
- No hay
res.writeHeadnires.end. - El código es mucho más legible y declarativo.
El comportamiento final es el mismo, pero el código es mucho más simple y fácil de mantener.
Qué hemos conseguido
En muy pocas líneas hemos logrado:
- Sustituir el servidor HTTP nativo.
- Simplificar el arranque del servidor.
- Definir rutas de forma clara.
- Eliminar código repetitivo (boilerplate).
Este es el primer paso real usando Express en el proyecto.
Los puntos clave de la clase
- ✅ Instalamos Express en el proyecto.
- ✅ Creamos una aplicación con
express(). - ✅ Levantamos el servidor con
app.listen. - ✅ Definimos rutas con
app.get. - ✅ Reemplazamos el servidor nativo por Express.
En la siguiente clase empezaremos a añadir más rutas y comportamiento real a nuestro servidor usando Express.