Parte 2: Introduzione ai Middleware
Benvenuti alla nostra lezione su middleware in Node.js utilizzando il framework Express.
I middleware sono funzioni che hanno accesso agli oggetti di richiesta (request), risposta (response), e alla prossima funzione middleware nel ciclo di richiesta-risposta dell'applicazione. Sono uno strumento essenziale per effettuare il preprocessing delle richieste, gestire le risposte, e organizzare il codice in maniera modulare.
Cosa è un Middleware?
Un middleware è una funzione che viene eseguita tra la ricezione della richiesta e l'invio della risposta nel tuo application server. Questi possono eseguire le seguenti operazioni:
Eseguire qualsiasi codice.
Modificare gli oggetti di richiesta e risposta.
Terminare il ciclo di richiesta-risposta.
Chiamare il prossimo middleware nella pila.
Se il middleware non termina il ciclo di richiesta-risposta, deve chiamare next()
per passare il controllo al prossimo middleware, altrimenti la richiesta rimarrà sospesa.
Implementare Middleware Base in Express
Express è un framework che rende molto semplice implementare middleware. Qui vediamo come aggiungere un middleware semplice che registra la data e l'ora di ogni richiesta.
Crea un file
app.js
: Inizia creando un nuovo progetto Express se non l'hai già fatto:mkdir mioProgettoExpress cd mioProgettoExpress npm init -y npm install express touch app.js
Aggiungi il Middleware per il Logging: Nel file
app.js
, configura il tuo server Express e aggiungi un middleware che stampa la data e l'ora attuali:const express = require('express'); const app = express(); const port = 3000; // Middleware che logga la data e l'ora delle richieste app.use((req, res, next) => { console.log('Time:', Date.now()); next(); }); app.get('/', (req, res) => { res.send('Home Page'); }); app.get('/about', (req, res) => { res.send('About Page'); }); app.listen(port, () => { console.log(`Server running on http://localhost:${port}`); });
Middleware per la Gestione degli Errori
I middleware non sono utili solo per loggare o modificare le richieste; possono anche gestire gli errori. Express ha una particolarità: i middleware che gestiscono gli errori hanno quattro argomenti invece di tre. L'argomento aggiuntivo è l'errore che viene passato.
// Middleware per la gestione degli errori
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
Esercizio: Creazione di Middleware Personalizzato
Prova a creare un middleware che controlla se una richiesta contiene un certo header, e se non è presente, invia una risposta con status 400 (Bad Request). Questo esercizio ti aiuterà a comprendere come i middleware possono essere usati per validare le richieste in ingresso.
app.use((req, res, next) => {
if (!req.headers['x-custom-header']) {
res.status(400).send('Bad Request: Missing x-custom-header');
} else {
next();
}
});
Conclusione
Con questa lezione, hai imparato cos'è un middleware, come implementarlo in un'applicazione Express, e come può essere utilizzato per migliorare la gestione delle richieste e delle risposte. I middleware sono potenti strumenti per costruire applicazioni web robuste e sicure.
Continua a esplorare e a sperimentare con i middleware in Express per scoprire come possono migliorare ulteriormente le tue applicazioni!
Last updated
Was this helpful?