Dans cette vidéo tutorielle en français, le présentateur explique en détail les différentes méthodes de réponse offertes par le framework Express.js. Il reprend le code d’une session précédente et ajoute de nouvelles routes pour illustrer chaque méthode. Il montre comment `res.send` peut renvoyer n’importe quel type de contenu (texte, HTML) et comment le navigateur continue d’attendre la fin de la requête jusqu’à l’appel de `res.end`. Il décrit `res.download` pour proposer le téléchargement de fichiers, en insistant sur l’usage de `__dirname` pour fournir un chemin absolu et éviter les erreurs. La méthode `res.json` est présentée comme le moyen standard d’envoyer des réponses JSON, que ce soit sous forme de chaîne ou d’objet JavaScript, soulignant son importance dans les API. Le présentateur montre ensuite `res.redirect`, expliquant la différence entre les redirections temporaires (302) et permanentes (301). Il aborde `res.sendStatus` et la combinaison `res.status(...).send(...)` pour renvoyer des codes HTTP (500, 404, 200) avec ou sans message personnalisé. Une route générique `app.all('')` est utilisée pour capturer toutes les requêtes non définies et retourner un 404 personnalisé, illustrant la chaîne `status().send()`. Enfin, il décrit `res.sendFile` pour servir des fichiers statiques, rappelant la nécessité d’un chemin absolu, et mentionne brièvement `res.render` qui sera détaillé dans une prochaine session. Le tutoriel se conclut en récapitulant les méthodes de réponse et en encourageant les développeurs à les appliquer dans leurs projets Express.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle vidéo sur the framework Express. Aujourd'hui, nous allons voir les méthodes de réponse. Nous allons continuer sur le code de la dernière fois et nous allons ajouter une nouvelle route pour faire les tests. La première méthode de réponse est la méthode send que nous avons déjà utilisée jusqu'ici. Dans send, on peut mettre n'importe quel message. On peut même le formater en HTML. Par exemple, le titre H1. Cette fois, nous allons faire les tests sur le navigateur puisqu'on utilise que la méthode GET. Voilà le résultat qu'on obtient. Donc la méthode send peut envoyer n'importe quel type de réponse. Imaginez qu'au lieu d'afficher un message sur le navigateur, on veut plutôt afficher une notification sur la console. Donc on mettra Console.Log. Réexécutons. On constate que le message est affiché sur la console, mais le navigateur tourne toujours. Et c'est normal parce qu'on n'a pas encore mis fin au processus requête-réponse. Et c'est justement le rôle de la prochaine méthode. Nous allons juste ajouter res.end. Alors la méthode end met fin automatiquement au processus de réponse. Réexécutons. On constate que le message est encore affiché et le navigateur ne mouline plus. Il y a aussi la méthode download associée à l'objet réponse et on va spécifier le chemin du fichier qui va être téléchargé. On va par exemple supposer que c'est le fichier home.js qui va être téléchargé. On mettra donc le chemin. Réexécutons. On voit que le navigateur nous invite à télécharger le fichier demandé. Il se peut parfois qu'on ait une erreur du genre il faut spécifier le chemin absolu. Pour éviter ça, il est préférable d'ajouter la variable dirname. C'est une variable Node.js qui permet d'indiquer le chemin absolu du module courant. On va concaténer. Exécutons. Ça nous donne toujours la possibilité de télécharger les fichiers. Download, on peut lui associer n'importe quel type de fichier, que ce soit un PDF, un fichier zip ou même un fichier JS comme on vient de le voir. Il y a aussi la méthode JSON qu'on associe toujours à l'objet res. Vous aurez compris que le format à envoyer c'est un format JSON. On mettra par exemple une chaîne de caractères qui contiendra la clé nom avec mon nom par exemple en guise de valeur. En réexécutant, on voit que la forme d'affichage a changé parce que dans ce cas c'est un format JSON qui a été envoyé. On peut même spécifier un objet littéral JavaScript. Par exemple, je vais l'appeler obj. Dedans je mettrai la clé nom avec la valeur souhaitée et la clé prénom avec mon prénom. Et à la place de la chaîne, on va spécifier l'objet obj. Réexécutons. On obtient toujours une réponse JSON sur le navigateur. D'ailleurs, c'est l'un des formats les plus utilisés quand on a affaire à une API parce que comme vous le savez, une API envoie généralement la réponse JSON et c'est ensuite l'application frontend qui va se charger de formater l'affichage. Il y a aussi la méthode redirect qui permet de rediriger le navigateur du client vers une nouvelle page. On mettra par exemple l'adresse de mon site. Exécutons. On constate que le navigateur me redirige directement vers mon site web. On va inspecter le code pour voir ce qui se passe. On recommence. Alors on constate que la redirection qui a été effectuée est de type 302 pour dire une redirection provisoire. Sinon on peut spécifier une redirection permanente. Il suffit d'ajouter un autre paramètre ici, c'est le code HTTP 301 qui signifie redirection permanente. Alors réexécutons. Maintenant j'ai le code 301 qui signifie une redirection permanente. Il y a aussi la méthode sendStatus. Qui permet d'envoyer un code HTTP, par exemple le code 500 qui signifie erreur interne du serveur. Alors exécutons. Alors on a bien le code 500 ici qui signifie Internal Server Error, ou bien le code 404 qui signifie ressource introuvable. Etc. D'ailleurs, en guise d'exemple, imaginez que l'utilisateur cherche une page qui n'existe pas sur votre serveur. Alors il est primordial de lui envoyer la réponse 404 en indiquant la raison. Donc ce que nous allons faire, on va juste mettre par exemple res.send message. Alors exécutons ici. On a juste le message qui a été affiché avec le code 200 pour dire que tout est OK. Maintenant on va ajouter une autre route. On va lui associer la méthode all pour dire toutes les méthodes sont éligibles dans ce cas. Et en guise de chemin, on va spécifier tous les chemins. On va faire ça soit avec le symbole étoile qui signifie tous les chemins, ou bien avec une expression régulière littérale comme on l'a vu avant dans une séance de JavaScript. On mettra point étoile pour dire n'importe quel chemin. Et là on mettra res.send status et on met 404. Dans ce cas, si l'utilisateur saisit une adresse existante comme par exemple test, alors il aura un message. Et s'il exécute une adresse qui n'existe pas, c'est-à-dire qui ne correspond à aucune route, dans ce cas c'est la dernière route qui sera exécutée et qui correspond à n'importe quelle requête. Alors ici ça marche, mais si je mets par exemple tests avec un S, c'est une route qui n'existe pas et le serveur m'envoie l'erreur 404. On peut faire mieux, au lieu de mettre sendStatus, on mettra status avec l'erreur 404 et on va chaîner avec send. Et là on mettra le message personnalisé, par exemple On va mettre le titre h2 et en guise de message on mettra page introuvable. Alors exécutons. Alors on a ici page introuvable. C'est-à-dire qu'il est possible de chaîner send avec status. D'ailleurs c'est la meilleure méthode parce que ça permet d'envoyer à la fois le code HTTP et le message personnalisé. Il y a aussi la méthode render, mais on aura l'occasion de la voir en détail dans une séance à part parce qu'elle nécessite un peu plus d'explications. La dernière méthode c'est sendFile. Comme son nom l'indique, elle va envoyer un fichier au navigateur. Dans ce cas on va créer un fichier HTML juste sur la racine du serveur bien que ce soit pas une bonne pratique mais c'est juste un test. On mettra du code HTML conforme HTML5. Là on mettra par exemple un titre H1 et là une balise div. Le fichier index.html est bien le document que l'on va envoyer. On mettra son chemin ici. Réexécutons. On va corriger la route. Alors ici, ça nous dit qu'il faut spécifier un chemin absolu. Alors là, on aura forcément besoin de la variable DIR_NAME. Exécutons encore une fois. Et voilà, c'est la page demandée. Dans ce cas, c'est notre document HTML. Notez que cette méthode n'est pas très utilisée parce qu'on préfère la méthode render, mais comme je vous ai dit, on va la traiter dans une séance à part parce que ça demande un peu plus d'explications. Mais c'est une méthode qui est très utilisée aussi si on veut créer des vues avec Express. Alors j'espère que maintenant vous connaissez les méthodes que l'on peut associer aux réponses. Merci pour votre attention et à la vidéo prochaine.