Node.js MongoDB Tutoriel avec exemples
La plupart des applications Web modernes disposent d’une sorte de système de stockage de données au niveau du backend. Par exemple, si vous prenez le cas d’une application d’achat en ligne, des données telles que le prix d’un article seraient stockées dans la base de données.
Le framework Node js peut fonctionner avec des bases de données à la fois relationnelles (telles que Oracle et MS SQL Server) et les bases de données non relationnelles (telles que MongoDB). Dans ce didacticiel, nous verrons comment utiliser les bases de données à partir des applications Node js.
Bases de données Node.js et NoSQL
Au fil des années, les bases de données NoSQL telles que MongoDB et pour MySQL sont devenus très populaires en tant que bases de données pour le stockage de données. La capacité de ces bases de données à stocker tout type de contenu et particulièrement dans tout type de format est ce qui fait la renommée de ces bases de données.
Node.js a la capacité de fonctionner avec les deux MySQL ainsi que MongoDB comme bases de données. Pour utiliser l'une ou l'autre de ces bases de données, vous devez télécharger et utiliser les modules requis à l'aide du gestionnaire de packages Node.
Pour MySQL, le module requis s'appelle « mysql » et pour l'utiliser MongoDB le module requis à installer est « Mongoose ».
Avec ces modules, vous pouvez effectuer les opérations suivantes dans Node.js
- Gérer le pool de connexions – C'est ici que vous pouvez spécifier le nombre de MySQL connexions à la base de données qui doivent être maintenues et enregistrées par Node.js.
- Créez et fermez une connexion à une base de données. Dans les deux cas, vous pouvez fournir une fonction de rappel qui peut être appelée chaque fois que les méthodes de connexion « créer » et « fermer » sont exécutées.
- Des requêtes peuvent être exécutées pour obtenir des données des bases de données respectives afin de récupérer des données.
- La manipulation des données, telle que l'insertion de données, la suppression et la mise à jour de données, peut également être réalisée avec ces modules.
Pour les sujets restants, nous verrons comment nous pouvons travailler avec MongoDB bases de données au sein Node.js.
En utilisant MongoDB et Node.js
Comme discuté dans le sujet précédent, MongoDB est l'une des bases de données les plus populaires utilisées avec Node.js.
Au cours de ce chapitre, nous verrons
Comment pouvons-nous établir des liens avec un MongoDB base de données
Comment pouvons-nous effectuer les opérations normales de lecture des données d'une base de données ainsi que l'insertion, la suppression et la mise à jour des enregistrements dans un MongoDB base de données.
Pour les besoins de ce chapitre, supposons que nous ayons le ci-dessous MongoDB données en place.
Nom de la base de données : EmployeeDB
Nom de la collection : Employé
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
- Installation des modules NPM
Vous avez besoin d'un pilote pour accéder à Mongo depuis une application Node. Il existe un certain nombre de pilotes Mongo disponibles, mais MongoDB est parmi les plus populaires. Pour installer le MongoDB module, exécutez la commande ci-dessous
npm installer mongodb
- Création et fermeture d'une connexion à un MongoDB base de données. L'extrait de code ci-dessous montre comment créer et fermer une connexion à un MongoDB base de données.
Explication du code :
- La première étape consiste à inclure le module mangouste, ce qui se fait via la fonction require. Une fois ce module en place, nous pouvons utiliser les fonctions nécessaires disponibles dans ce module pour créer des connexions à la base de données.
- Ensuite, nous spécifions notre chaîne de connexion à la base de données. Dans la chaîne de connexion, 3 valeurs clés sont transmises.
- Le premier est « mongodb » qui précise que nous nous connectons à une base de données mongoDB.
- Le suivant est « localhost », ce qui signifie que nous nous connectons à une base de données sur la machine locale.
- Le suivant est « EmployeeDB », qui est le nom de la base de données définie dans notre MongoDB base de données.
- La prochaine étape consiste à se connecter réellement à notre base de données. La fonction connect prend notre URL et a la possibilité de spécifier une fonction de rappel. Il sera appelé lors de l'ouverture de la connexion à la base de données. Cela nous donne la possibilité de savoir si la connexion à la base de données a réussi ou non.
- Dans la fonction, nous écrivons la chaîne « Connexion établie » sur la console pour indiquer qu'une connexion réussie a été créée.
- Enfin, nous fermons la connexion à l'aide de l'instruction db.close.
Si le code ci-dessus est exécuté correctement, la chaîne « Connecté » sera écrite sur la console comme indiqué ci-dessous.
- Interrogation de données dans un MongoDB base de données - En utilisant le MongoDB pilote, nous pouvons également récupérer des données du MongoDB base de données. La section ci-dessous montrera comment nous pouvons utiliser le pilote pour récupérer tous les documents de notre collection d'employés. dans notre base de données EmployeeDB. Voici la collection de notre MongoDB base de données, qui contient tous les documents relatifs aux employés. Chaque document a un identifiant d'objet, un nom d'employé et un identifiant d'employé pour définir les valeurs du document.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); cursor.each(function(err, doc) { console.log(doc); }); });
Explication du code :
- Dans la première étape, nous créons un curseur (un curseur est un pointeur qui est utilisé pour pointer vers les différents enregistrements extraits d'une base de données. Le curseur est ensuite utilisé pour parcourir les différents enregistrements de la base de données. Ici, nous définissons un nom de variable appelé curseur qui sera utilisé pour stocker le pointeur vers les enregistrements extraits de la base de données.) qui pointe vers les enregistrements extraits de la collection MongoDb. Nous avons également la possibilité de spécifier la collection « Employee » à partir de laquelle extraire les enregistrements. La fonction find() est utilisée pour spécifier que nous voulons récupérer tous les documents de la collection MongoDb. MongoDB collecte.
- Nous parcourons maintenant notre curseur et pour chaque document dans le curseur, nous allons exécuter une fonction.
- Notre fonction va simplement imprimer le contenu de chaque document sur la console.
Remarque: - Il est également possible de récupérer un enregistrement particulier dans une base de données. Cela peut être fait en spécifiant la condition de recherche dans la fonction find(). Par exemple, supposons que vous vouliez simplement récupérer l'enregistrement contenant le nom de l'employé Guru99, alors cette instruction peut être écrite comme suit
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Si le code ci-dessus est exécuté avec succès, la sortie suivante sera affichée dans votre console.
Sortie :
De la sortie,
- Vous pourrez voir clairement que tous les documents de la collection sont récupérés. Ceci est possible en utilisant la méthode find() de la connexion mongoDB (db) et en parcourant tous les documents à l'aide du curseur.
- Insérer des documents dans une collection – Les documents peuvent être insérés dans une collection à l’aide de la méthode insertOne fournie par le MongoDB bibliothèque. L'extrait de code ci-dessous montre comment nous pouvons insérer un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
Explication du code :
- Ici, nous utilisons la méthode insertOne du MongoDB bibliothèque pour insérer un document dans la collection Employee.
- Nous spécifions les détails du document sur ce qui doit être inséré dans la collection Employee.
Si vous vérifiez maintenant le contenu de votre MongoDB base de données, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de « NewEmployee » inséré dans la collection Employee.
Remarque : La console n'affichera aucune sortie car l'enregistrement est en cours d'insertion dans la base de données et aucune sortie ne peut être affichée ici.
Pour vérifier que les données ont été correctement insérées dans la base de données, vous devez exécuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find({Employeeid :4 })
La première instruction garantit que vous êtes connecté à la base de données EmployeeDb. La deuxième instruction recherche l'enregistrement dont l'identifiant d'employé est 4.
- Mise à jour de documents dans une collection – Les documents peuvent être mis à jour dans une collection en utilisant la méthode updateOne fournie par le MongoDB bibliothèque. L'extrait de code ci-dessous montre comment mettre à jour un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').updateOne({ "EmployeeName": "NewEmployee" }, { $set: { "EmployeeName": "Mohan" } }); });
Explication du code :
- Nous utilisons ici la méthode « updateOne » du MongoDB bibliothèque, qui est utilisée pour mettre à jour un document dans une collection mongoDB.
- Nous précisons les critères de recherche selon lesquels le document doit être mis à jour. Dans notre cas, nous voulons trouver le document dont le EmployeeName est « NewEmployee ».
- Nous souhaitons ensuite définir la valeur du EmployeeName du document de « NewEmployee » à « Mohan ».
Si vous vérifiez maintenant le contenu de votre MongoDB base de données, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de « Mohan » mis à jour dans la collection Employee.
Pour vérifier que les données ont été correctement mises à jour dans la base de données, vous devez exécuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find({Employeeid :4 })
La première instruction garantit que vous êtes connecté à la base de données EmployeeDb. La deuxième instruction recherche l'enregistrement dont l'identifiant d'employé est 4.
- Supprimer des documents dans une collection – Les documents peuvent être supprimés dans une collection en utilisant la méthode « deleteOne » fournie par le MongoDB bibliothèque. L'extrait de code ci-dessous montre comment supprimer un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
Explication du code :
- Nous utilisons ici la méthode « deleteOne » du MongoDB bibliothèque, qui est utilisée pour supprimer un document dans une collection mongoDB.
- Nous précisons les critères de recherche selon lesquels le document doit être supprimé. Dans notre cas, nous voulons trouver le document qui a le EmployeeName de « Mohan » et supprimer ce document.
Si vous vérifiez maintenant le contenu de votre MongoDB base de données, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de « Mohan » supprimé de la collection Employee.
Pour vérifier que les données ont été correctement mises à jour dans la base de données, vous devez exécuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find()
La première instruction garantit que vous êtes connecté à la base de données EmployeeDb. La deuxième instruction recherche et affiche tous les enregistrements de la collection des employés. Ici, vous pouvez voir si l'enregistrement a été supprimé ou non.
Comment créer une application Node Express avec MongoDB pour stocker et diffuser du contenu
Construire une application avec une combinaison d'utilisation d'Express et MongoDB est assez courant de nos jours.
Lorsque vous travaillez avec Javascénario applications basées sur le Web, on parlera normalement ici du terme pile MEAN.
- Le terme pile MEAN fait référence à un ensemble de JavaTechnologies basées sur des scripts utilisées pour développer des applications Web.
- MOYENNE est un acronyme pour MongoDB, ExpressJS, AngulaireJS, et Node.js.
Par conséquent, il est toujours bon de comprendre comment Node.js et MongoDB travailler ensemble pour fournir des applications qui interagissent avec les bases de données back-end.
Regardons un exemple simple de la façon dont nous pouvons utiliser « express » et «MongoDB" ensemble. Notre exemple utilisera la même collection Employee dans le MongoDB Base de données EmployeeDB.
Nous allons maintenant intégrer Express pour afficher les données sur notre page Web lorsque l'utilisateur le demande. Lorsque notre application s'exécute sur Node.js, il faudra peut-être accéder à l'URL http://localhost:3000/Employeeid.
Lorsque la page est lancée, tous les identifiants d'employé de la collection Employé seront affichés. Voyons donc l'extrait de code dans les sections qui nous permettront d'y parvenir.
Étape 1) Définissez toutes les bibliothèques qui doivent être utilisées dans notre application, qui dans notre cas est à la fois la MongoDB et bibliothèque express.
Explication du code :
- Nous définissons notre bibliothèque 'express', qui sera utilisée dans notre application.
- Nous définissons notre 'MongoDB', qui sera utilisée dans notre application pour se connecter à notre MongoDB base de données.
- Ici, nous définissons l'URL de notre base de données à laquelle se connecter.
- Enfin, nous définissons une chaîne qui sera utilisée pour stocker notre collection d'identifiants d'employé qui devront être affichés ultérieurement dans le navigateur.
Étape 2) Dans cette étape, nous allons maintenant récupérer tous les enregistrements de notre collection « Employé » et travailler avec eux en conséquence.
Explication du code :
- Nous créons un itinéraire vers notre application appelé « Employeeid ». Ainsi, chaque fois que quelqu'un accède à http://localhost:3000/Employeeid de notre application, l'extrait de code défini pour cette route sera exécuté.
- Ici, nous obtenons tous les enregistrements de notre collection « Employé » via la commande db.collection('Employee').find(). Nous attribuons ensuite cette collection à une variable appelée curseur. Grâce à cette variable curseur, nous pourrons parcourir tous les enregistrements de la collection.
- Nous utilisons maintenant la fonction curseur.each() pour parcourir tous les enregistrements de notre collection. Pour chaque enregistrement, nous allons définir un extrait de code sur ce qu'il faut faire lors de l'accès à chaque enregistrement.
- Enfin, on voit que si l'enregistrement retourné n'est pas nul, alors on prend le salarié via la commande « item.Employeeid ». Le reste du code consiste simplement à construire un code HTML approprié qui permettra à nos résultats de s'afficher correctement dans le navigateur.
Étape 3) Dans cette étape, nous allons envoyer notre sortie vers la page Web et faire écouter notre application sur un port particulier.
Explication du code :
- Ici, nous envoyons l'intégralité du contenu qui a été construit à l'étape précédente vers notre page Web. Le paramètre 'res' nous permet d'envoyer du contenu à notre page Web en réponse.
- Nous faisons écouter l’intégralité de notre application Node.js sur le port 3000.
Sortie :
De la sortie,
- Cela montre clairement que tous les identifiants d'employé de la collection Employee ont été récupérés. C'est parce que nous utilisons le MongoDB chauffeur pour se connecter à la base de données et récupérer tous les enregistrements des employés, puis utiliser « express » pour afficher les enregistrements.
Voici le code pour votre référence
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); //noinspection JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
Remarque : curseur.each peut-être obsolète en fonction de la version de votre MongoDB conducteur. Vous pouvez ajouter //noinspection JSDeprecatedSymbols avant curseur.each pour contourner le problème. Vous pouvez également utiliser forEach. Vous trouverez ci-dessous l'exemple de code utilisant forEach
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('Employee'); var cursor = collection.find({}); str = ""; cursor.forEach(function(item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
Résumé
- Node.js est utilisé conjointement avec NoSQL bases de données pour créer de nombreuses applications Web modernes. Certaines des bases de données courantes utilisées sont MySQL ainsi que MongoDB.
- L'un des modules courants utilisés pour travailler avec MongoDB bases de données est un module appelé 'MongoDB.' Ce module est installé via le gestionnaire de packages Node.
- Le MongoDB module, il est possible de rechercher des enregistrements dans une collection et d'effectuer les opérations normales de mise à jour, de suppression et d'insertion.
- Enfin, l'une des pratiques modernes consiste à utiliser le cadre express avec MongoDB pour fournir des applications modernes. Le framework Express peut utiliser les données renvoyées par le MongoDB pilote et afficher les données à l’utilisateur dans la page Web en conséquence.