feat(backend): add global error handling and request logging middlewares

This commit is contained in:
SaidSoighiri94
2026-06-15 17:46:39 +02:00
parent 2aefe5cfbe
commit 2ac1a3281b
7 changed files with 100 additions and 8 deletions
+9 -1
View File
@@ -98,6 +98,14 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
- Le modèle n'a pas d'entité "École" : seule `Campus` existe. Un campus = un lieu physique partagé par les deux écoles (et non une école).
- MVP : on démarre avec le **seul campus Saint-Christophe (Cergy)** ; les autres campus viendront ensuite.
### Étape 11 — Block 1 : middlewares backend
- Structure en couches : `utils/logger.ts`, `errors/app-error.ts`, `middlewares/` (request-logger, not-found, error-handler).
- Gestionnaire d'erreurs global : une `AppError` renvoie son statut + message ; toute autre erreur devient une 500 (stack exposée uniquement en `development`) et est tracée.
- Logger de requêtes (méthode, URL, statut, durée) + logger applicatif horodaté.
- CORS restreint à `env.frontendUrl` (était ouvert à toutes les origines). `SIGTERM` géré en plus de `SIGINT` (arrêt propre du container Docker).
- Express 5 propage nativement les erreurs des handlers async : pas de wrapper `asyncHandler` nécessaire.
- Vérifié au runtime : `/health` 200, route inconnue 404 en JSON, requêtes journalisées.
---
## Dette technique en attente
@@ -112,4 +120,4 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
---
*Dernière mise à jour : 2026-06-15 — Fixtures de test en place, Block 2 terminé.*
*Dernière mise à jour : 2026-06-15 — Middlewares backend (gestion d'erreurs, logs) en place.*