Aller au contenu

Maîtriser NestJS : ton guide ultime du développement backend moderne

23 août 2023 · 6 min read · Read in English

Sommaire

Introduction

Bienvenue dans cette série NestJS ! Tu es développeur à la recherche d'un framework puissant, efficace et bien structuré pour créer des applications serveur scalables ? NestJS est la bonne voie. Dans cette série, on va parcourir ensemble les principes de NestJS, un framework Node.js moderne et progressif qui apporte structure et maintenabilité à tes projets backend. À la fin de la série, tu auras une bonne compréhension de chaque facette de NestJS et tu seras prêt à construire des applications complexes en confiance.

C'est quoi NestJS ?

NestJS est un framework backend basé sur Node.js qui intègre les meilleures pratiques de plusieurs paradigmes de programmation : POO (orientée objet), FP (fonctionnelle), reactive programming, et d'autres. Il s'appuie sur TypeScript, un surensemble de JavaScript qui apporte un typage statique optionnel ainsi que des fonctionnalités de langage avancées.

Les objectifs principaux de NestJS sont la modularité, la réutilisabilité et la testabilité. Il permet aux développeurs d'écrire un code propre et maintenable grâce à un schéma structuré d'isolation des préoccupations. Quiconque a travaillé avec le framework frontend Angular se sentira en terrain connu.

Fonctionnalités clés de NestJS

  1. Architecture modulaire
    Les applications NestJS sont construites avec des modules qui encapsulent des fonctionnalités liées entre elles. Cette approche favorise la réutilisation du code et la simplifie.
  2. Contrôleurs et routes
    Les contrôleurs reçoivent les requêtes entrantes, traitent les données, et renvoient la réponse appropriée. Les routes sont définies dans les contrôleurs, ce qui rend simple le mapping URL → action.
  3. Providers et injection de dépendances
    Les providers sont des classes qu'on peut injecter dans des contrôleurs, services et autres composants. Cela permet d'écrire du code faiblement couplé et hautement testable.
  4. Services
    Les services portent la logique métier et peuvent être partagés entre différentes parties de l'application. Ils sont injectés dans les contrôleurs et autres services via l'injection de dépendances.
  5. Middleware
    Les middlewares permettent de traiter les requêtes entrantes avant qu'elles n'atteignent le gestionnaire de route. Utile pour l'authentification, le logging, la validation, etc.
  6. Interceptors
    Les intercepteurs servent à modifier les objets requête ou réponse, globalement ou pour un gestionnaire de route spécifique. Pratiques pour la transformation de données ou la gestion d'erreurs.
  7. Filtres d'exceptions
    Les exception filters gèrent les exceptions levées pendant le traitement d'une requête. Ils permettent de personnaliser les réponses d'erreur et de centraliser leur gestion.
  8. Pipes et validation
    Les pipes servent à transformer et valider les données avant qu'elles n'atteignent le gestionnaire de route. NestJS inclut des mécanismes de validation intégrés pour garantir l'intégrité des données.
  9. Guards
    Les guards contrôlent l'accès aux routes selon certaines conditions. Souvent utilisés pour l'authentification et l'autorisation.

Mettre en place un projet NestJS

Pour démarrer avec NestJS, suis ces étapes :

  1. Installer Node.js et npm
    Assure-toi d'avoir Node.js et npm installés sur ton système.
  2. Installer le Nest CLI
    Installe l'interface en ligne de commande Nest globalement :
    bash
     npm i -g @nestjs/cli
    
  3. Créer un nouveau projet
    Utilise le Nest CLI pour créer un nouveau projet. Place-toi dans le dossier souhaité et lance :
    bash
     nest new project-name
    
  4. Explorer la structure du projet
    Une fois le projet créé, explore la structure des dossiers. Tu y trouveras les modules, contrôleurs, services et autres fichiers essentiels organisés pour toi.
  5. Lancer l'application
    Pour démarrer ton application NestJS :
    bash
     npm run start
    

Structure d'un projet NestJS

Quand tu utilises le Nest CLI pour créer un nouveau projet, il génère une structure par défaut comme celle-ci :

Structure de fichiers d'un projet NestJS

Regardons chaque composant :

  • node_modules : ce dossier est l'endroit où Node.js et npm stockent toutes les dépendances externes nécessaires à ton projet (bibliothèques, modules, frameworks). Tu n'as pas besoin de le créer ou le gérer à la main : il est généré et maintenu automatiquement par npm.
  • src : ce dossier contient le code source de ton application.
    • app.controller.spec.ts : contient la suite de tests qui accompagne le fichier app.controller.ts. Utilisé pour écrire les tests unitaires des actions fournies par la classe AppController.
    • app.controller.ts : un contrôleur d'exemple qui gère les requêtes entrantes et définit des routes.
    • app.module.ts : considéré comme le module racine de ton application. Il importe et orchestre les autres modules, contrôleurs et services.
    • app.service.ts : un service d'exemple qui contient de la logique métier. Les services sont responsables des fonctionnalités centrales de l'application.
    • main.ts : le point d'entrée de ton application. Il initialise l'application Nest et démarre le serveur.
  • test : dossier destiné aux tests unitaires. Note que NestJS encourage une approche TDD.
  • .eslint.js : fichier de configuration ESLint.
  • .gitignore : sert à spécifier les fichiers et dossiers à ignorer par Git.
  • .prettierrc : fichier de configuration Prettier.
  • nest-cli.json : fichier de configuration du Nest CLI. Tu peux y définir diverses options pour ton projet.
  • package-lock.json : utilisé par Node.js pour verrouiller les versions des dépendances et sous-dépendances, ce qui garantit que les mêmes versions sont installées de manière cohérente d'un environnement à l'autre. Généré automatiquement par npm à l'installation, mise à jour ou suppression de paquets.
  • package.json : le fichier de configuration de package Node.js standard. Il liste les dépendances, scripts et autres métadonnées.
  • tsconfig.build.json : spécifie les configurations à utiliser lors du build de ton projet Nest.
  • tsconfig.json : fichier de configuration TypeScript. Il spécifie comment TypeScript doit transpiler ton code.

Voilà. Tu as maintenant une description complète de la structure d'un nouveau projet NestJS.

La suite de la série

Dans les prochains articles de cette série NestJS, on va plonger dans chacune des fonctionnalités et concepts mentionnés ci-dessus. On verra comment créer des modules, définir des contrôleurs et des routes, travailler avec providers et injection de dépendances, construire des services robustes, implémenter middleware et intercepteurs, gérer exceptions et validation, et sécuriser ton application avec les guards. À la fin de la série, tu auras une compréhension complète de NestJS et tu seras équipé pour créer des applications backend puissantes en toute simplicité.

Rendez-vous à la partie 2 de cette série NestJS, où on plongera dans le monde des services, modules et contrôleurs !

S'abonner aux prochains articles

Recevez les nouveaux articles par e-mail. Pas de spam, désinscription à tout moment.

Propulsé par Buttondown.

Related posts

© 2026 < Denis AKPAGNONITE /> | N1BBzerLZXT