Fermer

janvier 30, 2024

Présentation de NestJS / Blogs / Finalisation

Présentation de NestJS / Blogs / Finalisation


Si vous souhaitez apprendre un framework côté serveur robuste, efficace et évolutif au niveau de l’entreprise, vous avez atterri sur le bon blog 🚀 ! Nous commencerons par une brève introduction, et dans cet article et ceux qui suivront, nous plongerons directement dans la partie pratique. Ensemble, nous créerons une application qui couvre divers sujets fondamentaux et avancés de Nest JS, tels que les services, les contrôleurs, les modules, le référentiel, les canaux, l’injection de dépendances et la connectivité de base de données à l’aide de TypeORM. Pour rendre les choses plus intéressantes, nous allons déployer cette application à l’aide d’outils de premier ordre (indice : Vercel ou StackBlitz) et la mettre à l’épreuve avec le puissant outil Postman.

Qu’allons-nous construire ? un petit aperçu : version déployée de mon application

Tout au long de cette série, attendez-vous à des explications claires basées sur des diagrammes, des extraits de code GitHub Gists pratiques et un accès complet au code source de l’application que nous concevons. Regardons de plus près et comprenons vraiment le Nest JS !

Commençons par un aperçu rapide :
Nest a été créé par Kamil Mysliwiec. Il compte plus de 62,5 mille Étoiles GitHub ⭐(prise le 30 janvier 2024) toujours en croissance.

Image12

Nest JS est un framework backend Node JS côté serveur inspiré d’Angular, construit sur Typescript, plate-forme open source, Quand on dit Plate-forme cela signifie qu’il est livré avec de nombreux outils prêts à l’emploi tels que l’injection de dépendances, les micro-services, le socket Web, les utilitaires de test et prend en charge les API REST et GraphQL prêtes à l’emploi.

Aujourd’hui, il est utilisé par meilleures entreprises comme Adidas, Red Hat, GitLab, Mercedes-Benz, IBM, Capgemini etc. dans leur production.

Examinons de plus près NestJS :
Nest JS est un framework backend. Quand je dis backend, une chose me vient directement à l’esprit : la requête/réponse HTTP. Comprenons comment cela fonctionne à l’aide du schéma ci-dessous.

Image1

Figue. Architecture Client/Serveur

Image4

Figue. Requête HTTP

Comment fonctionne la requête HTTP
Chaque serveur HTTP que vous allez créer peut avoir un cycle requête/réponse.

Les utilisateurs vont demander à votre serveur, à l’intérieur du serveur, vous aurez une certaine quantité de code qui traitera cette demande. Vous pouvez valider les données contenues dans la demande et éventuellement formuler la réponse et la renvoyer à la personne qui a fait cette demande.

Chaque fois que vous créez le serveur, le cycle de requête et de réponse sera presque le même et ne variera pas quel que soit le framework, la bibliothèque, le langage ou la plate-forme.

Vous trouverez ci-dessous une ventilation plus détaillée du diagramme d’architecture client/serveur ci-dessus :
Image7
Figue. Architecture client/serveur détaillée
  1. Recevoir une requête
  2. Pourrait en faire Validation sur les données que contient la requête (valider certaines données dans le corps de la requête)
  3. Assurez-vous que l’utilisateur est Authentifié/Autorisé pour nous envoyer une demande
  4. Itinéraire ou Pointez la demande à une fonction particulière pour gérer une requête qui pourrait entraîner
  5. Exécution d’un particulier Logique métier et éventuellement
  6. Accéder ou Stocker des données à l’intérieur d’une base de données.

Ensuite, à la suite de tout le processus ci-dessus, nous allons formuler une réponse et la renvoyer à celui qui a fait cette demande.

Peut-être que dans certains cas, nous ne procéderons pas à l’authentification ou exclure certaines étapes, mais plus ou moins le processus sera le même.

Comprenons l’explication ci-dessus à la manière NestJS:

Image3Fig.Nest JS Architecture Client/Serveur

Dans Nest JS, nous disposons d’outils spéciaux pour aborder chaque étape.

Tuyaux: Aide à valider les données des demandes entrantes.
Garde: Assurez-vous que l’utilisateur qui fait des demandes à l’application est authentifié/autorisé.
Contrôleurs: Logique de routage.
Service: Gérez l’accès aux données et la logique métier.
Dépôt: Gère les magasins de données dans la base de données.

Éléments constitutifs de Nest JS :Image18

Figue. Parties de Nest JS

Aperçu rapide de la structure des dossiers et de certains fichiers importants:

Image5Figue. Structure des dossiers Nest JS

Modules: Comme son nom l’indique, il est utilisé pour organiser les fonctionnalités de répartition du code en unités logiques et réutilisables. Chaque application Nest possède au moins un module racine. Il est utilisé pour amorcer notre application de la même manière que le framework Angular (cliquez ici pour en savoir plus sur le bootstrap angulaire)

Image6

Fig. application.module.ts

Éléments du module :

  1. Contrôleurs: Point d’entrée des demandes, traitement des demandes de candidature entrantes et réponse aux clients
  2. Importations: Liste des modules qui relèvent des modules.
  3. Fournisseurs: Instruction pour le système d’injection de dépendance sur la façon d’obtenir une valeur de dépendance
  4. Exportations: API publique pour le module (exportation explicite – différence principale entre Angular et NestJS)

Note: Injection de dépendances – Concept très important à comprendre dans Nest JS et d’autres frameworks actuels, je prévois d’expliquer ce concept dans les prochains blogs… restez à l’écoute.

main.ts: Point d’entrée de la candidature

Image11Figue. Parties de Nest JS


Manette
: Chaque contrôleur a plus d’une route et chaque route sert différentes actions comme créer une mise à jour, supprimer

Image9

Figue. app.controller.ts

Décorateurs et ses types :

Image15

Figue. Types de décorateurs

service.ts:

Image19

Image2

Élaborons maintenant notre première application Nest JS avec l’outil officiel Nest CLI :

Prérequis: Dernière version de NodeJS

Installation : pour étayer le projet, installons Nest CLI

> npm i -g @nestjs/cli
> nest new project-name

Ajoutons du code personnalisé dans app.service.ts fichier ici, nous l’avons déjà obtenirBonjour()fonction qui renvoie Hello World! String comme indiqué plus tôt dans ce fichier, nous ajouterons ici toutes nos logiques.

Note: copier les modifications du code à partir d’ici

greeting(): string {
  return 'Welcome to NestJS 😺';
}

Dans le code ci-dessus, nous avons ajouté une méthode de salutation qui renvoie un message sous forme de chaîne. Dans app.controller.ts, ajoutons un point de terminaison de contrôleur personnalisé. /Bonjour

@Get('/hello')
  greeting(): string {
  return this.appService.greeting();
}

Image10

Image20

Conseils supplémentaires: Pour déployer votre projet avec n’importe quel outil comme Vercel, Heroku, j’ai déjà un guide détaillé étape par étape pour déployer votre application Nest JS avec Vercel Cliquez ici suivre.
Voir ma démo déployée ici (déployée sur Vercel) : https://nest-j-scaffold.vercel.app/hello
Test de demande du facteur: https://nest-j-scaffold.vercel.app/hello

Image16






Source link