Express
Express.js es un framework para construir aplicaciones web y APIs con Node.js. Facilita el manejo de rutas, peticiones HTTP, middlewares y mucho más. Express.js abstrae la complejidad del módulo HTTP de Node.js y te permite enfocarte en lo importante: la lógica del sistema.
¿Para qué sirve? Sirve para crear servidores de manera rápida y sencilla, definiendo rutas (URLs) y sus comportamientos, así como manejando peticiones de clientes (navegadores, apps móviles, etc.).
¿Por qué conocer esto mejora tus habilidades como desarrollador? Express es la base de muchísimas aplicaciones web y APIs modernas. Comprenderlo te permite crear backends sólidos, comprender el ciclo de vida de una petición y dominar patrones como MVC o REST.
¿Cómo usarlo?
Instalar Express en tu proyecto con npm install express
// Servidor básico con Express
import express from 'express'; // Importamos express
const app = express(); // Creamos una instancia de express
app.get('/', function (req, res) { // Creamos una 'ruta' de ejemplo dentro del servidor
res.send('¡Hola mundo! (pero con Express)');
});
app.listen(3000, () => { // Iniciamos el servidor
console.log('Servidor corriendo en http://localhost:3000');
});
El ejemplo se ve muy bonito y todo pero…
¿Qué son las rutas?
Las rutas son las URLs que utilizaremos para acceder a nuestro servidor y serán nuestro punto de comunicación por el mismo. Dentro de Express, las rutas se definen mediante el uso de los métodos HTTP: GET, POST, PUT, DELETE, etc.
- GET: Se utiliza para obtener información de un recurso. Por ejemplo, si quisieramos obtener la lista de productos, utilizaremos la ruta
GET /productos
, o bien si quisieramos obtener información detallada de un solo producto, utilizariamos la rutaGET /productos/:id
- POST: Se utiliza para crear un nuevo recurso. Por ejemplo, si quisieramos crear un nuevo producto, utilizaremos la ruta
POST /productos
- PUT: Se utiliza para actualizar un recurso existente. Por ejemplo, si quisieramos actualizar un producto, utilizaremos la ruta
PUT /productos/:id
- DELETE: Se utiliza para eliminar un recurso existente. Por ejemplo, si quisieramos eliminar un producto, utilizaremos la ruta
DELETE /productos/:id
Nótese que al crear las rutas, definimos una funcion que se ejecutara cuando se llame a esa ruta. Dentro de la función el argumento req
representa la solicitud HTTP y el argumento res
representa la respuesta HTTP.
En una solicitud HTTP podrían viajar datos enviados por el usuario (Ej: Desde un formulario). Mientras que en una respuesta HTTP se pueden enviar datos que seran mostrados en el navegador (Ej: Listado o Array de productos / Un mensaje de ‘Exito al cargar el producto’ / Un mensaje de error al cargar el producto).