Contenu du cours
Développement Backend Avec Node.js et Express.js
Développement Backend Avec Node.js et Express.js
Implémentation de la Route "GET POST BY ID"
Nous allons explorer la mise en œuvre de la route "GET POST BY ID" dans le postsRoutes.js file
. Cette route récupère et renvoie un post spécifique basé sur son identifiant unique (id
) fourni dans l'URL.
Remarque
Le terme 'base de données' se réfère spécifiquement au fichier
posts.json
situé dans le dossierdatabase
.
Définition de la Route
Le code ci-dessous définit la route "GET POST BY ID" en utilisant router.get()
:
- Cette route est configurée pour gérer les requêtes HTTP GET;
- Le chemin de la route
/post/:id
inclut un paramètre:id
, qui capture l'ID du post à partir de l'URL.
Extraction de l'ID du Post
Nous extrayons l'ID du post à partir des paramètres de la requête en utilisant req.params.id
:
Cette ligne capture la valeur :id
de l'URL, la rendant disponible pour un traitement ultérieur.
Recherche du Post dans la Base de Données
Ensuite, nous recherchons le post avec l'ID correspondant dans la base de données:
- Nous utilisons la fonction asynchrone
readData
pour récupérer les données du fichier JSON; - La méthode
find()
est employée pour localiser un post avec un ID correspondant dans les données récupérées; - La variable
post
contient le post trouvé ouundefined
si aucune correspondance n'est trouvée.
Gestion de la Réponse
Nous gérons la réponse en fonction de la présence ou non d'un post :
- Si aucun post n'est trouvé (c'est-à-dire que
post
estundefined
), nous envoyons une réponse 404 avec un message d'erreur, indiquant que le post demandé n'a pas été trouvé ; - Si un post est trouvé, nous envoyons le post en tant que réponse avec un code de statut 200 (OK).
Gestion des Erreurs
Nous enveloppons le code de la route dans un bloc try-catch pour gérer les erreurs potentielles lors de la récupération des données ou du traitement de la requête. Toutes les erreurs qui se produisent sont enregistrées dans la console à des fins de débogage :
Code complet du fichier postsRoutes.js à cette étape
Merci pour vos commentaires !