• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 17/02/2023

Modifiez et supprimez des données

Mettez à jour un Thing existant

Découvrons ensemble dans cette vidéo comment mettre un jour un Thing existant :

Ajoutons une autre route à notre application, juste en dessous de notre route GET individuelle. Cette fois, elle répondra aux requêtes PUT :

app.put('/api/stuff/:id', (req, res, next) => {
  Thing.updateOne({ _id: req.params.id }, { ...req.body, _id: req.params.id })
    .then(() => res.status(200).json({ message: 'Objet modifié !'}))
    .catch(error => res.status(400).json({ error }));
});

Ci-dessus, nous exploitons la méthode updateOne() dans notre modèle Thing . Cela nous permet de mettre à jour le Thing qui correspond à l'objet que nous passons comme premier argument. Nous utilisons aussi le paramètre id passé dans la demande, et le remplaçons par le Thing passé comme second argument.

Vous pouvez maintenant tester votre nouvelle route : cliquez sur un Thing de l'application, puis sur son bouton Modifier, changez ses paramètres puis sauvegardez. Vous envoyez alors un Thing modifié au back-end. En revenant sur la page des articles, vous devriez retrouver votre article modifié.

Suppression d'un Thing

Il est temps d'ajouter une dernière route, la route DELETE :

app.delete('/api/stuff/:id', (req, res, next) => {
  Thing.deleteOne({ _id: req.params.id })
    .then(() => res.status(200).json({ message: 'Objet supprimé !'}))
    .catch(error => res.status(400).json({ error }));
});

La méthode deleteOne() de notre modèle fonctionne comme findOne() et updateOne() dans le sens où nous lui passons un objet correspondant au document à supprimer. Nous envoyons ensuite une réponse de réussite ou d'échec au front-end.

Félicitations ! Désormais, votre application implémente le CRUD complet :

  • create (création de ressources) ;

  • read (lecture de ressources) ;

  • update (modification de ressources) ;

  • delete (suppression de ressources).

L'application permet donc désormais un parcours client complet !

En résumé

  • app.put()  et  app.delete()  attribuent des middlewares aux requêtes de type PUT et de type DELETE.

  • Les méthodes  updateOne()  et  delete()  de votre modèle Thing permettent de mettre à jour ou de supprimer un Thing dans la base de données.

Qu'avons-nous appris dans cette partie du cours ?

  • Vous avez configuré votre base de données MongoDB et l'avez connectée à votre application Express.

  • Vous avez utilisé Mongoose pour créer un modèle de données afin de faciliter les opérations de la base de données.

  • Vous avez implémenté, dans votre application Express, les routes CRUD qui exploitent votre modèle de données Mongoose, rendant ainsi votre application entièrement dynamique.

Dans la partie suivante de ce cours, nous nous pencherons sur une thématique extrêmement importante : la sécurité.

Exemple de certificat de réussite
Exemple de certificat de réussite