Node.js - 5.14 Renvoyer une page 404 personnalisée

Quand un visiteur demande une adresse qui n'existe pas, le serveur doit répondre avec une page d'erreur claire. Cette leçon crée un fichier 404.html, puis le renvoie avec le code d'état 404. Ce code indique au navigateur que la page demandée est introuvable.

Créer la page 404

Dans le dossier views, créez un fichier 404.html à partir d'un squelette HTML5. Donnez-lui le titre Page introuvable, puis ajoutez une balise h1 avec ce même texte.

Vous pouvez ajouter d'autres contenus à cette page si vous le souhaitez. La leçon garde une version minimale, qui suffit pour afficher l'erreur.

Envoyer le fichier avec le bon code

Dans app.js, il faut construire le chemin du fichier avec le module path. Ce module garantit que le chemin fonctionne sur tous les systèmes d'exploitation. Le fichier est ensuite envoyé avec le code d'état 404.

Le fichier de l'application est déjà dans le dossier racine. Il n'est donc pas nécessaire de remonter d'un niveau : il suffit d'entrer dans le dossier views, puis de viser 404.html.

const path = require('path');

res.status(404).sendFile(path.join(__dirname, 'views', '404.html'));

Tester la page

Après avoir enregistré le fichier, une adresse aléatoire qui n'existe pas affiche maintenant la page Page introuvable.

Le code 404 est bien renvoyé en même temps que la page. Cette solution est meilleure que l'ancien contenu factice, et les pages suivantes s'appuieront sur la même logique.

En résumé

La page 404 est un fichier HTML rangé dans views. Elle est envoyée avec le code d'état 404 dès qu'une adresse est introuvable. Le module path assure un chemin correct sur tous les systèmes.

Points clés

  • Une page 404 personnalisée améliore l'expérience du visiteur.
  • Le code d'état 404 indique que la page est introuvable.
  • Le module path construit un chemin valable sur tous les systèmes.
  • La méthode status définit le code renvoyé avant l'envoi du fichier.
  • Une adresse inexistante affiche maintenant la page personnalisée.

Questions fréquentes

Pourquoi utiliser le module path ?

Il construit le chemin du fichier de façon correcte sur tous les systèmes d'exploitation, sans écrire les séparateurs à la main.

Pourquoi envoyer le code 404 et pas seulement la page ?

Le code indique au navigateur que la ressource n'existe pas. La page seule ne suffit pas à transmettre cette information.

Faut-il remonter d'un dossier pour atteindre views ?

Non. Le fichier app.js est déjà dans le dossier racine, donc views se trouve directement à côté.