Tutoriel Node.js MongoDB avec des exemples

Table des matières:

Anonim

La plupart des applications Web modernes ont une sorte de système de stockage de données en 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 non relationnelles (telles que MongoDB). Dans ce tutoriel, nous verrons comment nous pouvons utiliser des bases de données à partir des applications Node js.

Dans ce didacticiel, vous apprendrez-

  • Bases de données Node.js et NoSQL
  • Utilisation de MongoDB et Node.js
  • Comment créer une application node express avec MongoDB pour stocker et diffuser du contenu

Bases de données Node.js et NoSQL

Au fil des ans, les bases de données NoSQL telles que MongoDB et MySQL sont devenues très populaires en tant que bases de données pour stocker des données. La capacité de ces bases de données à stocker tout type de contenu et en particulier 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 MySQL et MongoDB en tant que bases de données. Pour utiliser l'une 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 est appelé «mysql» et pour utiliser MongoDB, le module requis à installer est «Mongoose».

Avec ces modules, vous pouvez effectuer les opérations suivantes dans Node.js

  1. Gérer le pool de connexions - C'est ici que vous pouvez spécifier le nombre de connexions à la base de données MySQL qui doivent être maintenues et enregistrées par Node.js.
  2. 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 "create" et "close" sont exécutées.
  3. Des requêtes peuvent être exécutées pour obtenir des données à partir de bases de données respectives afin de récupérer des données.
  4. La manipulation des données, telle que l'insertion de données, la suppression et la mise à jour des données, peut également être réalisée avec ces modules.

Pour les autres sujets, nous verrons comment nous pouvons travailler avec les bases de données MongoDB dans Node.js.

Utilisation de MongoDB et Node.js

Comme indiqué dans la rubrique précédente, 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 nous pouvons établir des connexions avec une base de données MongoDB

Comment nous pouvons effectuer les opérations normales de lecture de données à partir d'une base de données ainsi que d'insertion, de suppression et de mise à jour d'enregistrements dans une base de données MongoDB.

Pour les besoins de ce chapitre, supposons que nous ayons les données MongoDB ci-dessous 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},}
  1. Installation des modules NPM

Vous avez besoin d'un pilote pour accéder à Mongo à partir d'une application Node. Il existe un certain nombre de pilotes Mongo disponibles, mais MongoDB est parmi les plus populaires. Pour installer le module MongoDB, exécutez la commande ci-dessous

npm installer mongodb

  1. Création et fermeture d'une connexion à une base de données MongoDB. L'extrait de code ci-dessous montre comment créer et fermer une connexion à une base de données MongoDB.

Explication du code:

  1. 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.
  2. Ensuite, nous spécifions notre chaîne de connexion à la base de données. Dans la chaîne de connexion, 3 valeurs de clé sont transmises.
  • Le premier est 'mongodb' qui spécifie 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 base de données MongoDB.
  1. La prochaine étape consiste à se connecter à notre base de données. La fonction de connexion 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.
  2. Dans la fonction, nous écrivons la chaîne "Connexion établie" à la console pour indiquer qu'une connexion réussie a été créée.
  3. Enfin, nous fermons la connexion à l'aide de l'instruction db.close.

Si le code ci-dessus est exécuté correctement, la chaîne «Connected» sera écrite dans la console comme indiqué ci-dessous.

  1. Interrogation de données dans une base de données MongoDB - En utilisant le pilote MongoDB, nous pouvons également extraire des données de la base de données MongoDB.

    La section ci-dessous montre comment nous pouvons utiliser le pilote pour récupérer tous les documents de notre collection Employee dans notre base de données EmployeeDB. Il s'agit de la collection de notre base de données MongoDB, 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:

  1. Dans un premier temps, 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 «Employé» à partir de laquelle récupérer les enregistrements. La fonction find () est utilisée pour spécifier que nous voulons récupérer tous les documents de la collection MongoDB.

  2. Nous parcourons maintenant notre curseur et pour chaque document du curseur, nous allons exécuter une fonction.

  3. 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 à partir d'une base de données. Cela peut être fait en spécifiant la condition de recherche dans la fonction find (). Par exemple, supposons que si vous vouliez simplement récupérer l'enregistrement dont le nom d'employé est Guru99, alors cette déclaration 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.

Production:

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.
  1. Insertion de documents dans une collection - Les documents peuvent être insérés dans une collection à l'aide de la méthode insertOne fournie par la bibliothèque MongoDB. L'extrait de code ci-dessous montre comment 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:

  1. Ici, nous utilisons la méthode insertOne de la bibliothèque MongoDB pour insérer un document dans la collection Employee.
  2. Nous spécifions les détails du document de ce qui doit être inséré dans la collection Employee.

Si vous vérifiez maintenant le contenu de votre base de données MongoDB, 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 inséré 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

  1. Utiliser EmployeeDB
  2. 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'ID d'employé est 4.

  1. Mise à jour de documents dans une collection - Les documents peuvent être mis à jour dans une collection à l'aide de la méthode updateOne fournie par la bibliothèque MongoDB. 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:

  1. Ici, nous utilisons la méthode "updateOne" de la bibliothèque MongoDB, qui est utilisée pour mettre à jour un document dans une collection mongoDB.
  2. Nous spécifions les critères de recherche dont le document doit être mis à jour. Dans notre cas, nous voulons trouver le document qui a pour EmployeeName "NewEmployee".
  3. Nous voulons ensuite définir la valeur du EmployeeName du document de "NewEmployee" à "Mohan".

Si vous vérifiez maintenant le contenu de votre base de données MongoDB, 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

  1. Utiliser EmployeeDB
  2. 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'ID d'employé est 4.

  1. Suppression de documents dans une collection - Les documents peuvent être supprimés dans une collection en utilisant la méthode "deleteOne" fournie par la bibliothèque MongoDB. 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:

  1. Ici, nous utilisons la méthode "deleteOne" de la bibliothèque MongoDB, qui est utilisée pour supprimer un document dans une collection mongoDB.
  2. Nous spécifions les critères de recherche dont 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 base de données MongoDB, 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

  1. Utiliser EmployeeDB
  2. 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 d'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 des deux en utilisant express et MongoDB est assez courant de nos jours.

Lorsque vous travaillez avec des applications Web JavaScript, on utilisera normalement ici le terme MEAN stack.

  • Le terme pile MEAN fait référence à un ensemble de technologies basées sur JavaScript utilisées pour développer des applications Web.
  • MEAN est un acronyme pour MongoDB, ExpressJS, AngularJS et Node.js.

Par conséquent, il est toujours bon de comprendre comment Node.js et MongoDB travaillent ensemble pour fournir des applications qui interagissent avec les bases de données backend.

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 la base de données MongoDB EmployeeDB.

Nous allons maintenant incorporer Express pour afficher les données sur notre page Web lorsque cela est demandé par l'utilisateur. Lorsque notre application s'exécute sur Node.js, vous devrez 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és 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 bibliothèque MongoDB et express.

Explication du code:

  1. Nous définissons notre bibliothèque «express», qui sera utilisée dans notre application.
  2. Nous définissons notre bibliothèque 'express', qui sera utilisée dans notre application pour se connecter à notre base de données MongoDB.
  3. Ici, nous définissons l'URL de notre base de données à laquelle se connecter.
  4. Enfin, nous définissons une chaîne qui sera utilisée pour stocker notre collection d'identifiants d'employés qui devront être affichés dans le navigateur ultérieurement.

Étape 2) Dans cette étape, nous allons maintenant obtenir tous les enregistrements de notre collection «Employé» et travailler avec eux en conséquence.

Explication du code:

  1. Nous créons une route vers notre application appelée «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é.
  2. Ici, nous obtenons tous les enregistrements de notre collection 'Employee' via la commande db.collection ('Employee'). Find (). Nous affectons ensuite cette collection à une variable appelée curseur. En utilisant cette variable de curseur, nous pourrons parcourir tous les enregistrements de la collection.
  3. Nous utilisons maintenant la fonction cursor.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.
  4. Enfin, on voit que si l'enregistrement retourné n'est pas nul, alors on prend l'employé via la commande "item.Employeeid". Le reste du code est juste pour construire un code HTML approprié qui permettra à nos résultats d'être affichés correctement dans le navigateur.

Étape 3) Dans cette étape, nous allons envoyer notre sortie à la page Web et faire écouter notre application sur un port particulier.

Explication du code:

  1. Ici, nous envoyons tout le contenu qui a été construit à l'étape précédente vers notre page Web. Le paramètre «res» nous permet d'envoyer du contenu sur notre page Web en tant que réponse.
  2. Nous faisons écouter toute notre application Node.js sur le port 3000.

Production:

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 pilote MongoDB pour se connecter à la base de données et récupérer tous les enregistrements d'employés et ensuite utilisé «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 JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});

Remarque: cursor.each peut être obsolète en fonction de la version de votre pilote MongoDB. Vous pouvez ajouter // noinspection JSDeprecatedSymbols avant cursor.each pour contourner le problème. Vous pouvez également utiliser forEach. Voici 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 + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Résumé

  • Node.js est utilisé en conjonction avec les bases de données NoSQL pour créer de nombreuses applications Web modernes. Certaines des bases de données courantes utilisées sont MySQL et MongoDB.
  • L'un des modules couramment utilisés pour travailler avec les bases de données MongoDB est un module appelé «MongoDB». Ce module est installé via le gestionnaire de packages Node.
  • Avec le module MongoDB, 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 framework express avec MongoDB pour fournir des applications modernes. Le framework Express peut utiliser les données renvoyées par le pilote MongoDB et afficher les données à l'utilisateur dans la page Web en conséquence.