NestJS
INTRODUCTION
● Framework [Link] Applications backend
● Créé en 2017 par Kamil Myśliwiec
● Basé sur [Link] (HTTP)
● Objectif: une bonne architecture
● Supporte TS et JS
● S’inspire d’autres frameworks (e.g. Spring:
OOP /Decorateurs, Angular: ID / modularité /
providers / middleware) CLI
TABLE OF CONTENTS
01 03
Installation Demo
02 04
Structure Avantages et
incovénients
01
Installation
$ npm i -g @nestjs/cli
$ nest new project-name
$ npm i -g @nestjs/cli
$ nest new project-name
$ npm i -g @nestjs/cli
$ nest new project-name
02
Structure
Controllers
Controlleur
● But : recevoir des requêtes spécifiques pour
l'application.
● Le mécanisme de routage : contrôle quel
contrôleur reçoit quelles requêtes.
● Classes et des décorateurs
● Les décorateurs permettent à Nest de lier les
requêtes aux contrôleurs correspondants
Controllers
Providers
Providers
● Les contrôleurs doivent gérer les requêtes HTTP
et déléguer des tâches plus complexes aux
providers
● Décorateur : @Injectable pour déclarer un
provider
● Contient des fonctions réutilisables dans toute
l’application
● Exemple : services, repositories (BDD), helpers…
Providers: Exemple (service)
Controller avec Providers
Modules
Modules
● Diviser l’application
● Chaque application a au moins un module racine
(root)
● + des modules features potentiels
● Contrôleurs
● Providers...etc
Feature Module
Module racine (root)
Structure
Middleware
Middleware
● Intercepter les requêtes
● Appelée avant le gestionnaire de route
● Accès aux objets de requête et de réponse et la
fonction middleware next() dans le cycle requête-
réponse de l'application
Exception filters
• Gérer les erreurs et
les messages
d’erreurs.
Pipes
• Transformer les
données d'entrée dans
la forme souhaitée
• Evaluer les données
d'entrée
Guards
• Authentifications
• Autorisations
DEMO
___
Avantages
Incovenients
Avantages
● Puissant mais adapté
● Syntaxe de style Angular
(backend)
● Typescript (gérer les erreurs)
● Structure modulaire
● Documentation approfondie
● Bonne architecture et
développement rapide
Inconvénients
● Très verbeux
● Lisibilité du code
● Dependences
circulaire
● Trop générique pour
les microservices
Conclusion
MERCI!
CREDITS: This presentation template was
created by Slidesgo, incluiding icons by Flaticon,
and infographics & images by Freepik.
REFERENCES
• [Link]
architectural-pattern-controllers-providers-and-
modules-406d9b192a3a
• [Link]
• [Link]
architecture-4epf
• [Link]