16,5. Créer un CRUD avec NodeJS et MongoDB : connexion à la base de données MongoDB
Dans cette section de notre e-book, nous aborderons l'un des aspects les plus importants du développement d'API dans NodeJS : la création d'un CRUD (Créer, Lire, Mettre à jour, Supprimer) avec NodeJS et MongoDB. Il s'agit d'une étape cruciale pour tout développeur souhaitant créer des applications robustes et évolutives.
Connexion à la base de données MongoDB
Avant de commencer à créer notre CRUD, nous devons établir une connexion à la base de données MongoDB. Il existe plusieurs façons de procéder, mais l'une des plus courantes consiste à utiliser le package Mongoose, qui est un ODM (Object Data Modeling) pour MongoDB et Node.js.
Pour installer Mongoose, vous pouvez utiliser npm (Node Package Manager) avec la commande suivante :
npm installer mangouste
Une fois installé, vous pouvez commencer à l'utiliser pour vous connecter à MongoDB. Voici un exemple de la façon de procéder :
const mangouste = require('mangouste');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser : true, useUnifiedTopology : true});
Ce code se connecte à une instance locale de MongoDB exécutée sur votre ordinateur. Si vous utilisez un service de base de données MongoDB hébergé tel que MongoDB Atlas, vous devrez remplacer « mongodb://localhost/test » par l'URL de connexion fournie par votre service d'hébergement.
Créer un CRUD avec NodeJS et MongoDB
Une fois notre connexion à MongoDB établie, nous pouvons commencer à créer notre CRUD. Pour ce faire, nous devons d'abord définir un schéma pour nos données. Dans Mongoose, un schéma est une structure qui définit la forme des documents au sein d'une collection MongoDB.
Voici un exemple de la manière dont vous pouvez définir un schéma pour un article de blog :
const blogSchema = nouvelle mangouste.Schema({
titre : Chaîne,
auteur: Chaîne,
corps : Corde,
commentaires : [{ body : String, date : Date }],
date : { type : Date, par défaut : Date.now },
caché : booléen,
but: {
votes : Nombre,
favoris : numéro
}
});
Une fois notre schéma défini, nous pouvons créer un modèle à partir de celui-ci. Un modèle est une classe avec laquelle nous construisons des documents. Dans l'exemple suivant, nous créons un modèle 'Blog' à partir de notre schéma 'blogSchema' :
const Blog = mangouste.model('Blog', blogSchema);
Avec notre modèle en main, nous pouvons commencer à créer, lire, mettre à jour et supprimer des documents. Voici un exemple de la façon dont vous pouvez créer un nouveau document à l'aide de notre modèle « Blog » :
const blogPost = new Blog({ titre : 'Mon premier article', auteur : 'John Doe', corps : 'Ceci est mon premier article de blog.' });
blogPost.save(fonction (erreur, blogPost) {
if (err) return console.error(err);
console.log(blogPost.title + " enregistré dans la collection de blogs. ");
});
Pour lire des documents, vous pouvez utiliser la méthode « find ». Voici un exemple de la façon dont vous pouvez trouver tous les articles de blog d'un auteur donné :
Blog.find({ auteur : 'John Doe' }, function(err, blogs) {
if (err) return console.error(err);
console.log(blogs);
});
Pour mettre à jour un document, vous pouvez utiliser la méthode 'updateOne'. Voici un exemple de la façon dont vous pouvez mettre à jour le titre d'un article de blog :
Blog.updateOne({ titre : 'Mon premier message' }, { titre : 'Mon message mis à jour' }, function(err, res) {
if (err) return console.error(err);
console.log(res);
});
Enfin, pour supprimer un document, vous pouvez utiliser la méthode 'deleteOne'. Voici un exemple de la manière dont vous pouvez supprimer un article de blog :
Blog.deleteOne({ title : 'Mon article mis à jour' }, function(err) {
if (err) return console.error(err);
console.log('Post supprimé');
});
C'est ainsi que nous concluons notre introduction à la création d'un CRUD avec NodeJS et MongoDB. Dans le chapitre suivant, nous explorerons chacune de ces opérations plus en détail et apprendrons comment gérer les erreurs et valider les données.