Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Uruchomione 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