‫Docente: Quindi, fino a questo punto del
‫corso non abbiamo gestito gli
‫errori in modo corretto o in una posizione centrale nella nostra applicazione.
‫Quello che abbiamo fatto è stato semplicemente inviare
‫un messaggio di errore come JSON in ogni gestore di route nel
‫caso qualcosa fosse andato storto.
‫Destra?
‫Quindi questo è fondamentalmente ciò che sistemeremo in questa sezione.
‫Ma per ora, prendiamoci un
‫minuto per avere solo una breve panoramica della gestione degli errori in Express.
‫E iniziamo distinguendo effettivamente tra
‫due tipi di errori che possono verificarsi.
‫Errori operativi ed errori di programmazione.
‫Quindi, gli errori operativi sono problemi che
‫possiamo prevedere che inevitabilmente si verificheranno ad un
‫certo punto in futuro.
‫E quindi dobbiamo solo gestirli in anticipo.
‫Non hanno nulla a che fare con i bug nel nostro codice.
‫Al contrario, dipendono dall'utente, dal sistema o
‫dalla rete.
‫Quindi, cose come un utente che accede a un percorso non
‫valido, immette dati non validi o un'applicazione non riesce a
‫connettersi al database.
‫Tutti questi sono errori operativi
‫che dovremo gestire
‫per preparare la nostra applicazione per questi casi.
‫Vedrai anche il termine "eccezione"
‫utilizzato al posto di errore
‫e sebbene siano concettualmente diversi, molte
‫persone usano i termini
‫errore ed eccezione in modo intercambiabile.
‫E li chiamerò
‫semplicemente "errori" anche in questo corso per evitare confusione.
‫Comunque, d'altra parte, abbiamo errori di programmazione.
‫Che sono semplicemente bug che noi
‫sviluppatori introduciamo nel nostro codice.
‫Come, ad esempio, provare a leggere
‫le proprietà da una variabile indefinita, usare wait senza async, usare
‫request per sbaglio. interrogazione invece di richiesta. corpo, o molti
‫altri errori, in realtà, che potremmo fare.
‫Allora, sai come funziona, vero?
‫E sono davvero inevitabili
‫ma anche più difficili da trovare e da maneggiare.
‫Ok, quindi è importante che tu capisca
‫questa differenza cruciale tra errori operativi ed
‫errori di programmazione.
‫Quindi, quando parliamo di gestione degli errori con
‫Express, intendiamo principalmente solo errori operativi.
‫Perché questi sono quelli
‫facili da catturare e gestire con la nostra applicazione Express.
‫Ed Express viene effettivamente fornito con la gestione
‫degli errori pronta all'uso.
‫Quindi, tutto ciò che
‫dobbiamo fare è scrivere un middleware di gestione
‫degli errori espresso globale che catturerà
‫gli errori provenienti da tutta l'applicazione.
‫Quindi, non importa se si tratta di un errore proveniente da
‫un gestore di route, o da un validatore di modelli o davvero, da qualche
‫altra parte, l'obiettivo è che tutti questi
‫errori finiscano in un middleware centrale di gestione degli errori.
‫In modo che possiamo inviare una bella risposta al cliente
‫facendogli sapere cosa è successo.
‫E quindi, davvero, gestire in questo caso significa
‫semplicemente inviare una risposta per far sapere all'utente cosa è successo.
‫Ma la gestione può anche significare, in
‫altri casi, riprovare l'operazione o arrestare il server,
‫o semplicemente ignorare del tutto l'errore.
‫A volte, questa è solo l'opzione migliore.
‫Ora la bellezza di avere un middleware di gestione degli errori
‫globale è che consente una buona separazione delle preoccupazioni.
‫Quindi, non dobbiamo preoccuparci della gestione
‫degli errori direttamente nella nostra logica di business o nei
‫nostri controller, o davvero ovunque nella nostra applicazione.
‫Possiamo semplicemente inviare gli errori al gestore degli
‫errori che deciderà cosa farne successivamente.
‫Tutto ok?
‫Quindi, con tutto ciò
‫che è stato detto, iniziamo a implementarlo.