Introducción a Express: Guía Completa

¿Qué es Express y por qué usarlo?

Express es un framework minimalista para Node.js que simplifica la creación de aplicaciones web y APIs. Ofrece:

  • Manejo sencillo de rutas y middleware.
  • Herramientas integradas para manejar solicitudes y respuestas HTTP.
  • Compatibilidad con extensiones para ampliar sus funcionalidades.
  Ventajas principales

  • Minimalista: Ofrece solo lo necesario para empezar, sin sobrecargar el proyecto.
  • Rápido: Diseñado para un rendimiento eficiente.
  • Extensible: Fácil de personalizar con middleware.

Ve a la página oficial de Node.js.

Instalación y configuración de Express

Para instalar Express, necesitas tener Node.js y npm instalados.

bash
npm install express

Crear un archivo app.js y configurarlo:

javascript
const express = require('express');
const app = express();

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Servidor ejecutándose en http://localhost:${PORT}`);
});

Crear un servidor básico con Express

Un servidor básico con una ruta que responde a solicitudes GET:

javascript
const express = require('express');
const app = express();

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

app.listen(3000, () => {
  console.log('Servidor ejecutándose en http://localhost:3000');
});

Estructura básica de una aplicación Express

Estructura típica de un proyecto Express:

bash
my-app/
  ├── app.js
  ├── package.json
  ├── routes/
  │   └── index.js
  ├── public/
  │   └── styles.css
  └── views/
      └── index.ejs

Ejemplo de un servidor básico con estructura organizada:

app.js:

javascript
const express = require('express');
const app = express();
const indexRouter = require('./routes/index');

// Middleware para servir archivos estáticos
app.use(express.static('public'));

// Usar el router
app.use('/', indexRouter);

app.listen(3000, () => {
  console.log('Servidor ejecutándose en http://localhost:3000');
});

routes/index.js:

javascript
const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  res.send('Página de inicio');
});

router.get('/about', (req, res) => {
  res.send('Acerca de nosotros');
});

module.exports = router;

Rutas y manejo de solicitudes HTTP

Express facilita el manejo de las solicitudes HTTP como GET, POST, PUT y DELETE.

Ejemplo: Manejo de diferentes métodos HTTP

javascript
const express = require('express');
const app = express();

// Middleware para procesar datos JSON
app.use(express.json());

// GET
app.get('/api/items', (req, res) => {
  res.json({ message: 'Obteniendo ítems' });
});

// POST
app.post('/api/items', (req, res) => {
  const item = req.body;
  res.json({ message: 'Ítem creado', item });
});

// PUT
app.put('/api/items/:id', (req, res) => {
  const id = req.params.id;
  const updatedItem = req.body;
  res.json({ message: `Ítem ${id} actualizado`, updatedItem });
});

// DELETE
app.delete('/api/items/:id', (req, res) => {
  const id = req.params.id;
  res.json({ message: `Ítem ${id} eliminado` });

});

app.listen(3000, () => {
  console.log('Servidor ejecutándose en http://localhost:3000');
});