Comment envoyer un code de statut 404 avec un message dans Express ?

Comment envoyer un code de statut 404 avec un message dans Express.js

En développement web, nous rencontrons souvent des situations où nous devons communiquer au client que la ressource demandé n'a pas été trouvée. Dans ces cas, nous devons envoyer un code de statut 404.

Dans Express.js, une bibliothèque de framework web pour Node.js, nous avons plusieurs façons de le faire, mais la bonne pratique est d'utiliser la méthode res.status() combinée à la méthode send().

Exemple d'envoi d'un code de statut 404

Voici comment vous pouvez utiliser ces méthodes pour envoyer un code de statut 404 avec un message personnalisé :

app.get('/route_inexistante', function(req, res) {
 res.status(404).send('Non trouvé');
});

Dans ce code, res.status(404) définit le code de statut de la réponse HTTP comme 404, ce qui indique que la ressource demandée n'a pas été trouvée sur le serveur. Ensuite, send('Non trouvé') adjoint le message 'Non trouvé' à la réponse.

Notez que send() finalise la réponse et l'envoie au client, il est donc important de l'appeler en dernier.

Pourquoi ne pas utiliser les autres méthodes ?

Les autres réponses fournies dans le quiz ne sont pas correctes.

  • res.send(404, 'Non trouvé') : Cette syntaxe était utilisée dans les versions plus anciennes d'Express.js (4.x et versions antérieures). Cependant, dans les versions plus récentes (4.14.0+), l'envoi de plusieurs arguments à res.send() a été déprécié.

  • res.sendStatus('404 Non trouvé') : La méthode sendStatus() prend un code de statut en tant que paramètre et envoie la description standard du code de statut comme réponse. En conséquence, vous ne pouvez pas envoyer un message personnalisé avec sendStatus().

Il est important de toujours être au fait des meilleures pratiques et des dernières mises à jour de la bibliothèque ou du framework que vous utilisez pour vous assurer que votre application fonctionne correctement et de façon optimale.

Related Questions

Trouvez-vous cela utile?