MVC & ORM
Architecture MVC et accès aux données : séparer les responsabilités, concevoir une couche modèle propre et utiliser un ORM (Prisma) dans une API Express.
Une API qui grandit devient vite illisible quand tout se mélange : requêtes SQL, validation, et réponses HTTP dans un seul fichier. Le pattern MVC (Modèle – Vue – Contrôleur) et les ORM apportent une structure claire pour séparer l'accès aux données de la logique métier et du routage.
Objectifs du chapitre
- Expliquer la séparation Modèle / Vue / ContrôleurFaible
- Concevoir une couche modèle sans SQL dans les contrôleursMoyenne
- Comprendre le rôle d'un ORM et du mapping objet-relationnelMoyenne
- Mettre en place Prisma et écrire un CRUD typéÉlevée
🎯 Architecture MVC
Le MVC découpe une application en trois rôles :
- le Modèle gère les données et les règles métier ;
- la Vue affiche les données (souvent du JSON pour une API) ;
- le Contrôleur reçoit la requête, appelle le modèle et renvoie la réponse.
Un ORM (Object-Relational Mapper) s'insère dans la couche modèle : il traduit les objets de votre langage en lignes de base de données, sans écrire de SQL à la main.
📋 Parcours du chapitre
🏛️ Architecture MVC
Séparation des responsabilités et MVC appliqué à une API Express.
🗄️ La couche modèle
Rôle du modèle, validation, services vs contrôleurs.
🔗 Introduction aux ORM
Qu'est-ce qu'un ORM, avantages, limites, panorama.
⚡ Prisma en pratique
Schéma, migrations, client généré et CRUD typé.
🏋️ Exercice
Refactoriser une API en MVC avec un ORM.
🧠 Quiz récapitulatif
Valider les acquis du chapitre avant la séance suivante.
📚 Ressources
Liens et lectures complémentaires.
🛠️ Atelier — isoler la couche modèle
À partir d'une route Express existante, extrayez la logique d'accès aux données dans un service dédié, puis posez un schéma Prisma minimal sur SQLite.
1. Repérer le mélange
Identifiez dans le contrôleur ce qui relève du transport (req/res) et ce qui relève des données.
2. Extraire un service
Déplacez la lecture/écriture dans TaskService ; le contrôleur ne fait plus que recevoir la requête et renvoyer la réponse.
3. Poser le schéma Prisma
model Task {
id Int @id @default(autoincrement())
title String
done Boolean @default(false)
}Lancez npx prisma migrate dev --name init, puis npx prisma generate.
🏋️ Exercice
Refactoriser une API en MVC avec un ORM (Prisma). → Exercice
🎯 Synthèse
MVC sépare routes, contrôleurs et modèles ; un ORM comme Prisma mappe les objets vers la base. Dans le projet fil rouge (branche session-09), ce chapitre refactorise en MVC.
MVC & ORM
Terminez le quiz du chapitre pour le marquer comme complété.