En aquest tema, aprendrem com gestionar les rutes en una aplicació Express. Les rutes són una part fonamental de qualsevol aplicació web, ja que determinen com es gestionen les peticions HTTP i com es responen. Express proporciona una manera senzilla i flexible de definir rutes.

Conceptes Clau

  1. Ruta: Una ruta és una combinació d'un mètode HTTP (GET, POST, PUT, DELETE, etc.) i un camí URL que defineix com es gestionen les peticions.
  2. Mètodes HTTP: Els mètodes HTTP més comuns són GET, POST, PUT i DELETE. Cada mètode s'utilitza per a diferents tipus d'operacions.
  3. Paràmetres de Ruta: Els paràmetres de ruta permeten capturar valors específics de l'URL.
  4. Middleware de Ruta: Middleware específic per a una ruta que s'executa abans que la ruta principal gestioni la petició.

Definint Rutes Bàsiques

Exemple de Codi

const express = require('express');
const app = express();
const port = 3000;

// Ruta GET bàsica
app.get('/', (req, res) => {
  res.send('Hola, món!');
});

// Ruta GET amb paràmetres
app.get('/usuari/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuari ID: ${userId}`);
});

// Ruta POST
app.post('/usuari', (req, res) => {
  res.send('Usuari creat!');
});

// Ruta PUT
app.put('/usuari/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuari ID: ${userId} actualitzat!`);
});

// Ruta DELETE
app.delete('/usuari/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuari ID: ${userId} eliminat!`);
});

app.listen(port, () => {
  console.log(`Servidor escoltant a http://localhost:${port}`);
});

Explicació del Codi

  • Ruta GET bàsica: Aquesta ruta respon a les peticions GET a la URL arrel (/) amb el missatge "Hola, món!".
  • Ruta GET amb paràmetres: Aquesta ruta captura un paràmetre de ruta (id) i el retorna en la resposta.
  • Ruta POST: Aquesta ruta respon a les peticions POST a la URL /usuari amb el missatge "Usuari creat!".
  • Ruta PUT: Aquesta ruta captura un paràmetre de ruta (id) i respon amb un missatge d'actualització.
  • Ruta DELETE: Aquesta ruta captura un paràmetre de ruta (id) i respon amb un missatge d'eliminació.

Paràmetres de Ruta

Els paràmetres de ruta són valors dinàmics que es poden capturar de l'URL. S'utilitzen per identificar recursos específics.

Exemple de Codi

app.get('/producte/:productId', (req, res) => {
  const productId = req.params.productId;
  res.send(`Producte ID: ${productId}`);
});

Explicació del Codi

  • Aquesta ruta captura el paràmetre productId de l'URL i el retorna en la resposta.

Middleware de Ruta

El middleware de ruta s'executa abans que la ruta principal gestioni la petició. Es pot utilitzar per a validacions, autenticació, etc.

Exemple de Codi

const middleware = (req, res, next) => {
  console.log('Middleware executat!');
  next();
};

app.get('/protegida', middleware, (req, res) => {
  res.send('Aquesta és una ruta protegida!');
});

Explicació del Codi

  • Middleware: Aquesta funció middleware es registra per a la ruta /protegida i s'executa abans que la ruta principal gestioni la petició.
  • next(): La funció next() s'utilitza per passar el control a la següent funció middleware o ruta.

Exercicis Pràctics

Exercici 1: Crear Rutes Bàsiques

  1. Crea una aplicació Express.
  2. Defineix les següents rutes:
    • GET /: Respon amb "Benvingut a la meva aplicació!"
    • GET /usuari/:nom: Respon amb "Hola, [nom]!"
    • POST /usuari: Respon amb "Usuari creat!"
    • PUT /usuari/:id: Respon amb "Usuari [id] actualitzat!"
    • DELETE /usuari/:id: Respon amb "Usuari [id] eliminat!"

Solució

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Benvingut a la meva aplicació!');
});

app.get('/usuari/:nom', (req, res) => {
  const nom = req.params.nom;
  res.send(`Hola, ${nom}!`);
});

app.post('/usuari', (req, res) => {
  res.send('Usuari creat!');
});

app.put('/usuari/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuari ${userId} actualitzat!`);
});

app.delete('/usuari/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Usuari ${userId} eliminat!`);
});

app.listen(port, () => {
  console.log(`Servidor escoltant a http://localhost:${port}`);
});

Exercici 2: Middleware de Ruta

  1. Crea una aplicació Express.
  2. Defineix una ruta /admin que utilitzi un middleware per verificar si l'usuari està autenticat abans de respondre amb "Benvingut a l'àrea d'administració!".

Solució

const express = require('express');
const app = express();
const port = 3000;

const autenticacioMiddleware = (req, res, next) => {
  const autenticat = true; // Canvia això per la teva lògica d'autenticació
  if (autenticat) {
    next();
  } else {
    res.status(401).send('No autoritzat');
  }
};

app.get('/admin', autenticacioMiddleware, (req, res) => {
  res.send('Benvingut a l\'àrea d\'administració!');
});

app.listen(port, () => {
  console.log(`Servidor escoltant a http://localhost:${port}`);
});

Conclusió

En aquesta secció, hem après com definir rutes en una aplicació Express, com utilitzar paràmetres de ruta i com implementar middleware de ruta. Aquestes habilitats són fonamentals per construir aplicacions web robustes i escalables amb Express. En el següent mòdul, explorarem com gestionar errors en una aplicació Express.

Curs de Node.js

Mòdul 1: Introducció a Node.js

Mòdul 2: Conceptes Bàsics

Mòdul 3: Sistema de Fitxers i I/O

Mòdul 4: HTTP i Servidors Web

Mòdul 5: NPM i Gestió de Paquets

Mòdul 6: Framework Express.js

Mòdul 7: Bases de Dades i ORMs

Mòdul 8: Autenticació i Autorització

Mòdul 9: Proves i Depuració

Mòdul 10: Temes Avançats

Mòdul 11: Desplegament i DevOps

Mòdul 12: Projectes del Món Real

© Copyright 2024. Tots els drets reservats