Retour
1. Expres.js + Mongoose.js: Introduction

Mongoose est une bibliothèque pour Node.js qui facilite l'utilisation de MongoDB, la base de données NoSQL la plus populaire..
Elle permet de créer des modèles, des schémas et de manipuler les données stockées dans une base de données MongoDB.
Prérequis
Pour suivre cette d'inititaion, vous devez avoir une bonne compréhension du langage JavaScript et des connaissances de base en développement web, y compris la création de sites web statiques et dynamiques:
- Initiation au language Javascript.
- Initiation à la programmation serveur avec NodeJS.
Il faut aussi avoir des connaissances dans la création d'application avec Express.js:
- Initiation à la librairie Express.js.
Objetcifs
À la fin de ce chapitre, vous serez en mesure de :
- Comprendre les concepts clés de Mongoose, tels que les modèles, les schémas et les documents.
- Installer et configurer MongoDB localement ou utiliser MongoDB Atlas.
- Installer Mongoose et le connecter à une base de données MongoDB.
Structure du projet
Vous pouvez récuperer le projet le départ sur GitHub.
git clone https://github.com/Djemai-Samy/expressjs-mongoose
Ou récupérer le projet de départ sur GitLab.
git clone https://gitlab.com/tutoriels-dev/expressjs/expressjs-mongoose/-/tree/main
📦expressjs-mongoose
┣ 📂node_modules
┣ 📜package.json
┗ 📜app.js
Puis déplacez vous sur le répertoire:
cd ./expressjs-mongoose
Installer toutes les dépendances:
npm install
Lancez l'application en mode developpement:
npm run dev
1. Présentation de MongoDB
1.1. MongoDB c'est quoi?
MongoDB est une base de données NoSQL (Not Only SQL) de type document.
Elle stocke les données sous forme de documents JSON (JavaScript Object Notation) dans des collections plutôt que dans des tables comme les bases de données relationnelles.
Cette structure permet une plus grande flexibilité pour les applications modernes qui ont des données qui évoluent rapidement.
En effet, dans les bases de données relationnelles, les tables doivent être modifiées chaque fois qu'un nouveau champ est ajouté, supprimé ou modifié.
Dans MongoDB, les documents peuvent être modifiés à tout moment sans avoir à modifier toute la structure de la base de données.
Un cours spécialisé sur MongoDB est entrain d'être produit. Vous le trouverez bientôt dans la section:
- Cours et tutoriels: Bases de données.
1.2. Installation de MongoDB localement
Un tutoriel pour installer MongoDB localement est entrain d'être produit. Vous le trouverez bientôt dans la section:
- Cours et tutoriels: Bases de données.
Pour installer MongoDB localement, il faut :
- Télécharger le package d'installation sur le site officiel de MongoDB
- Installer MongoDB en suivant les instructions
- Lancer le serveur MongoDB en exécutant la commande "mongod" dans un terminal
Lorsque le serveur est lancé, il est possible d'utiliser l'interface en ligne de commande mongo pour interagir avec la base de données.
Il est également possible d'utiliser un client graphique tel que Compass pour visualiser et gérer les données.
1.3. MongoDB sur Atlas
Un tutoriel pour utiliser MongoDB sur Atlas est entrain d'être produit. Vous le trouverez bientôt dans la section:
- Cours et tutoriels: Bases de données.
MongoDB Atlas est un service de base de données cloud qui permet d'héberger des instances MongoDB sur le cloud.
L'utilisation d'un service cloud est recommandée pour les applications qui ont besoin de scalabilité et de disponibilité.
Atlas offre des fonctionnalités de surveillance, de sauvegarde et de restauration des données, ainsi que des fonctions de sécurité avancées telles que l'authentification, l'autorisation et le chiffrement des données.
Pour utiliser Atlas, il faut :
- Créer un compte sur le site officiel de MongoDB Atlas
- Créer un cluster MongoDB en suivant les instructions
- Récupérer la chaîne de connexion pour se connecter à la base de données
1.4. Les Modèles et les Schémas
Dans MongoDB, les données sont stockées sous forme de documents JSON dans des collections.
Les modèles et schémas MongoDB permettent de définir la structure des documents qui seront stockés dans la collection.
Cela permet de s'assurer que les données stockées respectent une structure donnée, ce qui facilite la récupération des données et la gestion des erreurs.
Le modèle est une abstraction qui représente un type de document dans MongoDB.
Il définit les propriétés et les comportements des documents stockés dans la collection.
Les schémas MongoDB sont utilisés pour définir les règles de validation des données stockées dans un modèle.
Ils définissent les types de données, les contraintes et les options de validation pour les champs d'un document.
2. Mongoose
Mongoose est une bibliothèque JavaScript qui fournit des fonctionnalités de modélisation de données pour les applications Node.js utilisant MongoDB comme base de données.
Elle offre une interface simple et expressive pour gérer les opérations CRUD (create, read, update, delete) sur la base de données MongoDB.
2.1.Installation
Pour utiliser Mongoose dans une application Node.js, il faut installer le module Mongoose à l'aide de NPM.
- Site web de mongoose
- Package NPM mongoose
- GitHub de mongoose
Dans un terminal, exécutez la commande suivante pour installer Mongoose :
npm install mongoose
2.2. Connexion à la base de données
Pour se connecter à la base de données MongoDB à l'aide de Mongoose, il faut créer une instance de connexion à la base de données.
Cette instance utilise la chaîne de connexion récupérée lors de la création du cluster MongoDB sur Atlas ou lors de l'installation de MongoDB localement.
Voici un exemple de code pour se connecter à une base de données MongoDB à l'aide de Mongoose :
import express from "express";
// Librairie pour intéragir avec une BDD MongoDB
import mongoose from "mongoose";
// L'URI de la base de données locale
const MONGODB_URI = "mongodb://127.0.0.1:27017/mabdd";
// Le port de l'application
const PORT = 3001;
// Instanciation d'express
const app = express();
/**------------------------------------------------------------
* Connexion à la BDD et
* Lacement du serveur
*/
mongoose
.connect(MONGODB_URI)
.then(() => {
// Afficher dans la console que la BDD est connecté
console.log("Connecté à la BDD");
// Lancer le serveur sur le port sépcifié plus haut
app.listen(PORT, () => {
console.log("Serveur lancé sur le port : " + PORT);
});
})
.catch((err) => {
// Erreur dans le then
console.log("Pas connecté à la BDD");
console.log("Serveur pas lancé");
console.log(err);
});
/**
* -------------------------------------------------------------
*/
Conclusion
Mongoose est un module Node.js qui facilite la modélisation des données pour les applications utilisant MongoDB comme base de données. Dans ce cours, nous avons appris à installer MongoDB localement ou à utiliser Atlas pour héberger la base de données. Nous avons également vu ce que sont les modèles et les schémas et leur relation avec les documents et collections de MongoDB. Nous avons aussi vu comment installer et utiliser Mongoose sur un projet Node.js.
Dans les prochain articles, nous allons voire comment utiliser mongoose pour intéragir avec la base de données, te vous apprendrez à créer des modèles, des schémas et à effectuer des opérations CRUD avec Mongoose et ExpressJS. Vous découvrirez également comment gérer les relations entre les modèles, valider les données et effectuer des recherches complexes.
Aller plus loin

Express.js + Mongoose.js
Un cours complèt qui vous permettra de maîtriser l'utilisation de Mongoose avec ExpressJS pour la gestion de bases de données MongoDB dans vos projets de développement web.
Javascript
NodeJS
ExpressJS
Serveurs
HTTP
Back-End
Mongoose
MongoDB
1