td1_mongoose.zip

Création d'une API de gestion de produits

Vue d'ensemble du projet

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


Étape 1 : Initialisation du projet

  1. Créer le projet
mkdir newsql_mongoose_intro
cd newsql_mongoose_intro
npm init -y

  1. Installer les dépendances
npm install express mongoose
npm install body-parser

  1. Configurer package.json
{
  "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


Étape 2 : Configuration Express et MongoDB

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}`);
});