Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Angular et Node.js
  3. Connexion entre MongoDB et Node.js
Extrait - Angular et Node.js Développement web full stack avec MEAN
Extraits du livre
Angular et Node.js Développement web full stack avec MEAN Revenir à la page d'achat du livre

Connexion entre MongoDB et Node.js

Implémenter le CRUD avec Node.js et MongoDB

Le CRUD (voir le chapitre Node.js - La création du premier serveur Node.js - Les protocoles REST - La création des routes REST) représente les opérations de base que l’on peut effectuer sur une base de données. En utilisant Node.js avec MongoDB, vous pouvez mettre en œuvre ces opérations pour interagir avec votre base de données.

Voici un exemple d’implémentation de chaque opération CRUD en utilisant Node.js et MongoDB :

  • Create (créer) : pour insérer des données dans la base de données.

   const mongoose = require('mongoose'); 
   const MyModel = require('./models/myModel'); 
// Importez votre modèle Mongoose 
 
   const newItem = new MyModel({ 
     // Propriétés de l'objet à créer 
   }); 
 
   newItem.save((err, result) => { 
     if (err) { 
       console.error('Erreur lors de la création :', err); 
     } else { 
       console.log('Nouvel élément créé :', result); 
     } ...

Mongoose

L’ODM (Object Data Mapping) Mongoose est une bibliothèque qui facilite l’interaction avec MongoDB en vous permettant de définir des schémas de données et de créer des modèles pour vos collections. Plutôt que de manipuler directement les requêtes MongoDB, Mongoose vous offre une couche d’abstraction pour simplifier les opérations de base de données et rendre la gestion des données plus intuitive.

Voici quelques points clés à savoir sur Mongoose :

  • Schémas et modèles : avec Mongoose, vous définissez des schémas de données qui décrivent la structure et les types de données attendus dans vos documents MongoDB. Vous pouvez ensuite créer des modèles à partir de ces schémas pour interagir avec la base de données.

  • Validation des données : Mongoose vous permet de définir des règles de validation pour vos données, ce qui garantit que seules les données conformes au schéma sont enregistrées dans la base de données.

  • Interrogation simplifiée : Mongoose fournit des méthodes simplifiées pour effectuer des requêtes sur la base de données, ce qui vous permet d’interagir avec les documents de manière plus lisible et conviviale.

  • Middleware : vous pouvez...

La création d’un projet de test

1. La création d’une application avec Node.js et MongoDB

Utiliser MongoDB avec Node.js peut être très bénéfique pour le développement d’applications web ou d’API. Voici les étapes pour démarrer avec MongoDB et Node.js :

Étape 1 : installation de Node.js et de MongoDB

 Si cela n’a pas été fait précédemment, installez Node.js (voir le chapitre Node.js, section L’installation de Node.js 18) et MongoDB (voir le chapitre MongoDB, section L’installation de MongoDB) sur votre machine.

Étape 2 : initialisation du projet

 Créez un dossier pour votre projet.

 Ouvrez une invite de commandes ou un terminal et accédez au dossier de votre projet.

 Exécutez la commande npm init pour initialiser un fichier package.json. Suivez les instructions pour configurer les détails de votre projet.

Étape 3 : installation de Mongoose

 Mongoose est un ODM qui facilite l’utilisation de MongoDB avec Node.js. Installez-le en exécutant la commande suivante dans votre terminal :

npm install mongoose 

Étape 4 : configuration de la connexion à la base de données

 Créez un fichier de configuration pour votre base de données, par exemple db.js.

// db.js 
const mongoose = require('mongoose'); 
 
mongoose.connect('mongodb://localhost:27017/maBaseDeDonnees', { 
  useNewUrlParser: true, 
  useUnifiedTopology: true 
}); 
 
const db = mongoose.connection; 
 
db.on('error', console.error.bind(console, 'Erreur de connexion :')); 
db.once('open', () => { 
  console.log('Connecté à la base de données'); 
}); 

 Importez cette configuration dans votre application principale.

// app.js 
const express = require('express'); 
const app = express(); 
 
require('./db'); // Importe la configuration de la base de données 
 
// ... Autres configurations et routes 

Étape 5 : définition du modèle et utilisation de Mongoose

 Créez un modèle en définissant un schéma...

L’interrogation de MongoDB via les routes gérées par Express

1. La structure d’un serveur Node.js interrogeant MongoDB

La structure d’un serveur Node.js interrogeant MongoDB est généralement organisée en trois couches distinctes :

  • La couche de la base de données : elle se compose simplement de MongoDB, qui stocke les données de l’application. MongoDB est un système de gestion de bases de données NoSQL qui stocke les données sous forme de documents JSON flexibles. Les documents JSON sont stockés dans des collections, qui sont comparables aux tables dans une base de données relationnelle.

  • La couche de l’API : elle est équivalente à une couche intermédiaire qui permet à l’application frontend d’interagir avec la base de données. Cette couche est généralement développée en utilisant Express.js, qui est un framework basé sur Node.js (cf. chapitre Node.js - La création du premier serveur Node.js - Express), et fournit des fonctionnalités pour créer des API RESTful. L’API fournit des points d’entrée pour lire, écrire et supprimer les données stockées dans la base de données.

  • La couche du client : c’est l’interface utilisateur de l’application frontend, qui permet aux utilisateurs d’interagir avec les données stockées dans la base de données. Cette couche est généralement construite en utilisant AngularJS, qui est un framework de développement frontend basé sur JavaScript. AngularJS fournit des fonctionnalités pour la manipulation dynamique du DOM (Document Object Model), l’injection de dépendances et le binding de données.

Dans l’ensemble, la structure du serveur Node.js interrogeant MongoDB est conçue pour fournir un accès sécurisé et fiable aux données stockées dans la base de données, tout en fournissant une interface utilisateur dynamique et pratique pour les utilisateurs finaux.

2. Le CORS

Le CORS (Cross-Origin Resource Sharing) est un mécanisme de sécurité...

Conclusion

Dans ce chapitre, nous avons exploré en détail la notion de CRUD dans le développement. 

Nous avons présenté Mongoose, un ODM qui agit comme un intermédiaire entre notre application Node.js et la base de données MongoDB. Mongoose simplifie considérablement la manière dont nous interagissons avec MongoDB en nous permettant de travailler avec des schémas et des modèles JavaScript, ce qui rend les opérations sur la base de données plus conviviales et structurées. Pour illustrer ces concepts, nous avons créé un projet de test qui a servi de guide. Ce projet nous a permis de montrer comment ajouter des données à la base de données (opération Create du CRUD) et comment les récupérer (opération Read). Cette approche pratique a renforcé notre compréhension du fonctionnement de MongoDB avec Mongoose.

Nous avons également abordé les fonctions de callback, un élément clé dans le développement Node.js. Les callbacks sont couramment utilisés pour gérer les opérations asynchrones, telles que les requêtes à la base de données. En complément des callbacks, nous avons introduit le module async, qui offre des outils puissants pour gérer ces opérations asynchrones de manière plus ordonnée...