• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 3/13/20

Développez la fonction delete du back-end

Log in or subscribe for free to enjoy all this course has to offer!

Modifiez la route DELETE

En ce qui concerne la gestion des fichiers dans notre back-end, il faut absolument nous assurer que, à chaque suppression d'un Thing de la base de données, le fichier image correspondant est également supprimé.

Dans notre contrôleur stuff , il nous faut une nouvelle importation. Il s'agit du package fs de Node :

const fs = require('fs');

À présent, nous pouvons modifier notre fonction deleteThing() :

exports.deleteThing = (req, res, next) => {
Thing.findOne({ _id: req.params.id })
.then(thing => {
const filename = thing.imageUrl.split('/images/')[1];
fs.unlink(`images/${filename}`, () => {
Thing.deleteOne({ _id: req.params.id })
.then(() => res.status(200).json({ message: 'Objet supprimé !'}))
.catch(error => res.status(400).json({ error }));
});
})
.catch(error => res.status(500).json({ error }));
};

Dans cette fonction :

  • nous utilisons l'ID que nous recevons comme paramètre pour accéder au Thing correspondant dans la base de données ;

  • nous utilisons le fait de savoir que notre URL d'image contient un segment /images/ pour séparer le nom de fichier ;

  • nous utilisons ensuite la fonction unlink du package fs pour supprimer ce fichier, en lui passant le fichier à supprimer et le callback à exécuter une fois ce fichier supprimé ;

  • dans le callback, nous implémentons la logique d'origine, en supprimant le Thing de la base de données.

Notre API peut désormais gérer correctement toutes les opérations CRUD contenant des fichiers : lorsqu'un utilisateur crée un Thing , met à jour un Thing existant ou supprime un Thing !

Récapitulons...

Vous avez presque terminé. Bravo !

Regardons ce que vous avez appris :

  • vous avez créé un serveur Node et l'avez utilisé pour servir une application Express ;

  • vous avez connecté votre application à une base de données MongoDB et, à l'aide de Mongoose, vous avez créé une API RESTful permettant les opérations CRUD (Create, Read, Update and Delete — Créer, Lire, Modifier et Supprimer)

  • vous avez implémenté une authentification sécurisée à base du token JWT ;

  • enfin, vous avez implémenté la gestion du téléchargement de fichiers, permettant ainsi aux utilisateurs d'ajouter et de supprimer des images.

Félicitations ! Vous avez bientôt terminé ce cours sur Node, Express et MongoDB. Je vous laisse répondre au dernier quiz pour tester vos compétences.

La suite ? À vous de choisir ! Vous pouvez, par exemple, choisir d'approfondir vos connaissances back-end. Vous pouvez aussi commencer l'apprentissage d'un framework ou d'une librairie front-end avancée telle que Angular, React ou Vue.

Où que vous alliez par la suite, je vous souhaite bonne chance, et happy coding !

Example of certificate of achievement
Example of certificate of achievement