Una risposta di errore
Fa parte della sezione Fondamenti di Express del percorso Node.js di Coddy. Lezione 17 di 23.
Una route può non riuscire perché qualcosa sul server è andato storto. Lanciare un Error segnala il problema a Express. Un gestore degli errori è un middleware con quattro parametri, incluso err per primo. Express invia gli errori lanciati a questo tipo di middleware.
app.use((err, req, res, next) => {
res.status(500).json({error: 'Try later'});
});Inserisci il gestore dopo le route. Il client dovrebbe ricevere un breve messaggio, mentre il server può registrare i dettagli. Mantieni tutti e quattro i parametri anche se next non viene usato: Express riconosce i gestori degli errori dalla forma della funzione.
Prima di aggiungere un gestore, GET /broken restituisce la pagina di errore HTML di Express. Anche la chiamata a next(err) inoltra un errore al gestore degli errori; la chiamata a next() prosegue normalmente.
Sfida
FacileAvvia solo practice-errors/server.js. I tuoi file Recipe Box restano intatti e continuerai a lavorarci nella prossima lezione.
Avvia il programma e invia GET /broken per visualizzare la pagina di errore predefinita. Aggiungi un gestore degli errori dopo le route. Registra err.message con console.error, quindi invia lo stato 500 e {"error":"Try later"}. La risposta non deve esporre Database offline, ma la Console deve mostrarlo.
Le route che generano errori si trovano nel file bloccato practice-errors/routes.js. Mantieni il suo montaggio; scrivi il gestore in server.js.
Provalo tu
import routes from './routes.js';
import express from 'express';
const app = express();
app.use(routes);
// Aggiungi qui il gestore degli errori.
app.listen(3000);
Tutte le lezioni di Fondamenti di Express
Esercitati da solo: Playground Express