Objectif : Créer une API REST pour gérer un catalogue de produits avec MongoDB et Mongoose
Architecture du projet
newsql_mongoose_intro/
├── index.js # Point d'entrée
├── package.json # Configuration npm
└── src/
├── models/
│ └── models.js # Schémas Mongoose
├── controllers/
│ └── controllers.js # Logique métier
└── routes/
└── routes.js # Définition des routes
Stack : Node.js + Express + MongoDB + Mongoose
mkdir newsql_mongoose_intro
cd newsql_mongoose_intro
npm init -y
npm install express mongoose
npm install body-parser
{
"name": "nodejs_mongoose_tdb",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node index.js"
}
}
⚠️ Important : N'oubliez pas "type": "module" pour utiliser import/export ES6
Fichier : index.js
import express from 'express';
import mongoose from 'mongoose';
import dotenv from 'dotenv';
import routes from './src/routes/routes.js';
dotenv.config();
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware pour parser le JSON
app.use(express.json());
// Connexion à MongoDB
mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/productsdb', {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log('MongoDB connecté'))
.catch(err => console.error('Erreur de connexion à MongoDB:', err));
// Utilisation des routes
routes(app);
// Démarrage du serveur
app.listen(PORT, () => {
console.log(`Serveur démarré sur le port ${PORT}`);
});