Odpowiedź błędu
Część sekcji Podstawy Express ścieżki Node.js w Coddy. Lekcja 17 z 23.
Trasa może zakończyć się niepowodzeniem, jeśli coś pójdzie nie tak po stronie serwera. Rzucenie obiektu Error przekazuje błąd do Express. Obsługa błędów to middleware z czterema parametrami, z których pierwszym jest err. Express przekazuje rzucone błędy do tego rodzaju middleware.
app.use((err, req, res, next) => {
res.status(500).json({error: 'Try later'});
});Umieść obsługę błędów za trasami. Klient powinien otrzymać krótki komunikat, a serwer może zapisać szczegóły w logu. Zachowaj wszystkie cztery parametry, nawet jeśli next nie jest używany: Express rozpoznaje obsługę błędów na podstawie kształtu funkcji.
Zanim dodasz obsługę błędów, GET /broken zwraca własną stronę błędu HTML Express. Wywołanie next(err) również przekazuje błąd do obsługi błędów; wywołanie next() powoduje normalne działanie.
Wyzwanie
ŁatwyUruchomione zostaje tylko practice-errors/server.js. Pliki Recipe Box pozostają nietknięte i będziesz nad nimi pracować na następnej lekcji.
Uruchom serwer i wyślij żądanie GET /broken, aby zobaczyć domyślną stronę błędu. Dodaj obsługę błędów za trasami. Zaloguj err.message za pomocą console.error, a następnie wyślij status 500 i {"error":"Try later"}. Odpowiedź nie może ujawniać Database offline, ale w konsoli musi być widoczny ten komunikat.
Trasy zgłaszające błąd znajdują się w zablokowanym pliku practice-errors/routes.js. Zachowaj jego podpięcie; napisz obsługę błędów w server.js.
Spróbuj swoich sił
import routes from './routes.js';
import express from 'express';
const app = express();
app.use(routes);
// Dodaj tutaj obsługę błędów.
app.listen(3000);
Wszystkie lekcje w sekcji Podstawy Express
Poćwicz samodzielnie: Edytor online Express