Jak mogę wysłać błąd 403 i renderować stronę z komunikatem „nie masz uprawnień do odwiedzania tej strony”?
Mam teraz to:
res.send(403,"You do not have rights to visit this page");
ale chcę renderować stronę HTML zamiast zwykłego tekstu
res.render("no-rights", {title: "You have no rights to visit this page", text: "You are not allowed to visited this page. Maybe you are not logged in?"});
ze statusem 403.
Odpowiedzi:
7 dla odpowiedzi № 1http://expressjs.com/en/api.html#res.status
res.status(403);
res.render();
Lub w jednej linii
res.status(403).render();
0 dla odpowiedzi nr 2
Jak widać w obsługa błędów stronę Express możesz najpierw ustawić status, a następnie renderować stronę.
res.status(500);
res.render("error", { error: err });
podobnie stworzyłbym stronę, która mogłaby informować użytkownika o błędach 4xx (błąd klienta) i 5xx (błąd serwera) w podobny sposób, przekazując kod statusu i tytuł jako parametry.