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 "Update Post by ID"
Nous allons étudier comment mettre à jour un post existant en utilisant la route "UPDATE POST BY ID" dans le fichier postsRoutes.js
. Cette route gère la mise à jour d'un post basé sur son ID unique.
Définition de la Route
Le code ci-dessous définit la route "UPDATE POST BY ID" en utilisant router.put()
:
- Cette route est configurée pour gérer les requêtes HTTP PUT, spécifiquement pour la mise à jour des posts;
- Elle inclut un
:id
paramétré dans le chemin de la route pour identifier le post à mettre à jour; - Le middleware
validatePostData
est ajouté pour assurer la validation des données avant de procéder. La logique du middlewarevalidatePostData
reste la même que dans l'étape précédente.
Obtention des données de la requête
Ici, nous extrayons les données nécessaires de la requête, y compris l'ID du post et le contenu mis à jour du post :
- L'ID du post est extrait des paramètres de la requête, le rendant disponible pour un traitement ultérieur. Le paramètre
:id
de l'URL de la route est capturé en utilisantreq.params.id
; - Les
username
,postTitle
etpostContent
sont extraits du corps de la requête.
Mettre à jour le post dans la base de données
La mise à jour d'un post existant implique plusieurs étapes, comme décrit ci-dessous :
- Nous lisons les données existantes à partir du fichier JSON en utilisant la fonction asynchrone
readData
, comme expliqué précédemment; - La variable
postIndex
stocke l'index du post à mettre à jour dans le tableaudata
en comparant les IDs des posts; - Si le post n'est pas trouvé (c'est-à-dire
postIndex === -1
), une réponse 404 (Non trouvé) avec un message d'erreur est renvoyée au client; - Pour mettre à jour les données du post, nous fusionnons les données existantes du post (
...data[postIndex]
) avec les données mises à jour (...updatedData
). Cela garantit que seuls les champs spécifiés sont mis à jour et que les données existantes sont conservées; - Enfin, le tableau
data
mis à jour est réécrit dans le fichier JSON pour enregistrer les modifications apportées au post.
Envoi d'une réponse
Après la mise à jour réussie du post, une réponse JSON est envoyée au client. La réponse inclut un code de statut 200 (OK), indiquant une mise à jour réussie et les données du post mis à jour.
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 des requêtes. 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 !