16.7. Créer un CRUD avec NodeJS et MongoDB : Créer des contrôleurs pour chaque opération CRUD
L'une des parties les plus cruciales du développement d'API dans NodeJS est la création de contrôleurs pour chaque opération CRUD (Créer, Lire, Mettre à jour, Supprimer). Ces contrôleurs sont chargés de gérer la logique métier de chaque opération et d'interagir avec la base de données MongoDB. Dans ce chapitre, nous détaillerons le processus de création de ces contrôleurs.
Créer un contrôleur
Le contrôleur Create est responsable de la création de nouveaux enregistrements dans la base de données. Dans NodeJS, cela se fait à l'aide de la fonction « enregistrer » du modèle Mongoose. Le code d'un contrôleur Create pourrait ressembler à :
exports.create = fonction (req, res) {
var newRecord = nouveau modèle (req.body);
newRecord.save(function(err, record) {
si (erreur) {
res.send(err);
}
res.json(enregistrement);
});
} ;
Ce code crée un nouvel enregistrement en utilisant les données reçues dans la requête HTTP, puis enregistre l'enregistrement dans la base de données. Si une erreur se produit au cours de ce processus, elle sera détectée et envoyée en réponse. Sinon, le nouvel enregistrement est envoyé en réponse.
Lire le contrôleur
Le contrôleur de lecture est responsable de la lecture des enregistrements de la base de données. Cela peut être fait en utilisant la fonction « trouver » du modèle Mongoose. Le code d'un contrôleur de lecture pourrait ressembler à :
exports.read = fonction (req, res) {
Model.find({}, fonction(erreur, enregistrements) {
si (erreur) {
res.send(err);
}
res.json(enregistrements);
});
} ;
Ce code lit tous les enregistrements de la base de données et les envoie en réponse. Si une erreur se produit au cours de ce processus, elle sera détectée et envoyée en réponse.
Mettre à jour le contrôleur
Le contrôleur de mise à jour est responsable de la mise à jour des enregistrements existants dans la base de données. Cela peut être fait en utilisant la fonction « findByIdAndUpdate » du modèle Mongoose. Le code d'un contrôleur de mise à jour pourrait ressembler à :
exports.update = fonction (req, res) {
Model.findByIdAndUpdate(req.params.id, req.body, {new : true}, function(err, record) {
si (erreur) {
res.send(err);
}
res.json(enregistrement);
});
} ;
Ce code met à jour un enregistrement spécifique, identifié par l'ID passé en paramètre dans la requête HTTP. Les nouvelles données de l'enregistrement sont transmises dans le corps de la demande. Si une erreur se produit au cours de ce processus, elle sera détectée et envoyée en réponse. Sinon, l'enregistrement mis à jour est envoyé en réponse.
Supprimer le contrôleur
Le contrôleur Supprimer est responsable de la suppression des enregistrements de la base de données. Cela peut être fait en utilisant la fonction « findByIdAndRemove » du modèle Mongoose. Le code d'un contrôleur Supprimer pourrait ressembler à :
exports.delete = fonction (req, res) {
Model.findByIdAndRemove(req.params.id, function(err, record) {
si (erreur) {
res.send(err);
}
res.json({ message : 'Enregistrement supprimé avec succès' });
});
} ;
Ce code supprime un enregistrement spécifique, identifié par l'ID passé en paramètre dans la requête HTTP. Si une erreur se produit au cours de ce processus, elle sera détectée et envoyée en réponse. Sinon, un message de réussite est envoyé en réponse.
En résumé, créer des contrôleurs pour chaque opération CRUD dans NodeJS implique de définir des fonctions qui gèrent les requêtes HTTP et interagissent avec la base de données MongoDB. Chaque contrôleur est responsable d'une opération CRUD spécifique et doit gérer les éventuelles erreurs pouvant survenir au cours du processus.