Aller au contenu

Structure d'un projet avec Express

Express est hautement configurable et permet pratiquement d'utiliser la structure de projet que l'on souhaite. Pour le cours nous allons adopter une approche dans laquelle nous allons séparer les routes, le controlleur où sera fait la logique applicative et l'accès aux données.

  • Modèle : Gestion des intéractions avec la base de données. C'est ici que nous ferons nos requêtes et retourneront les résultats bruts.
  • Route : Une série de routes (endpoint). Chaque route fera appel à une fonction du controlleur, il n'y a pas vraiment de traitement qui se fera à ce niveau.
  • Controlleur : C'est ici qu'on fait la logique de l'application, avec des appels au modèle si besoin est.

project_structure.png

Notre structure de projet

À la racine du projet :

  • .env : Contient les variables d'environnement qu'on utilise avec le module dotenv.
  • package.json : La "recette" pour construire votre application, on y retrouve les modules à installer et les scripts.
  • server.js : Fichier de démarrage de votre application. (ou index.js, app.js, etc..)
  • /src : Dossier qui contient le restant de la logique de l'application
  • /node_modules : Dossier des modules installés, ne jamais rien modifier ou ajouter dans ce répertoire. À ne pas inclure dans vos dépôts Git, ce dossier peut facilement être "reconstruit" grâce à la commande npm install.

Dans le dossier src :

  • /config : Les fichiers servants à la configuration, comme la connexion à la base de données (db.js dans mon exemple).
  • /controllers : Les fichiers controlleurs où la logique de l'application est écrite. Nommez les nomDeLaRessource.controller.js pour plus de clarté.
  • /models : Les fichiers modèles qui s'occuperont de la communication avec la base de données. Nommez les nomDeLaRessource.model.js pour plus de clarté.
  • /routes : Les fichiers de routage qui essentiellement appelleront le bon controlleur. Nommez les nomDeLaRessource.route.js pour plus de clarté.