În 2021, JavaScript a fost cel mai utilizat limbaj de programare.
Atractia acestei tehnologii este incontestabila, asa cum se vede din numarul mare de cadre care permit programarea JavaScript.
Există Angular, React și Vue pe front-end, precum și Express și Next pe backend, pentru a menționa câteva.
Cu atât de multe cadre minunate pentru programarea backend în JavaScript accesibile, s-ar putea să vă gândiți de ce aș căuta ceva diferit în loc să folosesc pur și simplu Express sau Next.
Poate că trebuie să porniți rapid procesul de dezvoltare cu o placă decentă, iar adăugarea manuală nu numai de controlere noi, ci și de servicii vă îmbolnăvește.
Sau doriți să creați un software mare, scalabil, ușor de gestionat. Sau poate pur și simplu doriți să lucrați într-un mod mai eficient și mai convenabil.
Indiferent de ceea ce este adevărat în circumstanțele dvs., Nest.js poate fi soluția perfectă pentru nevoile dvs.
Această postare va oferi informații despre NestJS, precum și experiență practică.
Ce este NestJS?
NestJS este un cadru Node progresiv care este open-source, extensibil și adaptabil .Js cadru pentru construirea, angajarea și provocarea sistemelor backend. Acum este Nodul cu cea mai rapidă rată de creștere.
Cadru TypeScript pentru js. NestJS este folosit pentru a crea aplicații care sunt scalabile, testabile și slab conectate.
Acesta adaugă scalabilitate la Node. Serverele Js au fost duse la un nivel cu totul nou. PostgreSQL, MongoDB și MySQL se numără printre bazele de date acceptate.
NestJS este extensibil deoarece poate fi folosit cu alte biblioteci; flexibil datorită ecosistemului său complet adaptabil. Și progresiv, deoarece acceptă caracteristicile JavaScript și principiile de design.
Este influențat în primul rând de Angular, React și Vue și vine cu injecție de dependență încorporată.
DESCRIERE
- Este simplu de folosit, de învățat și de stăpânit.
- Este gratuit și open-source (licență MIT)
- Interfață puternică pentru linie de comandă (CLI) pentru o productivitate sporită și simplitate în dezvoltare
- Programe de testare unitară care sunt simplu de utilizat
- Este folosit TypeScript, un limbaj bine tastat care este un superset de JavaScript.
- Dezvoltarea și întreținerea unei baze de cod active.
- Suport pentru sute de module specifice cuibului, care fac interfațarea simplă cu tehnologii și idei populare precum TypeORM, Mongoose, GraphQL, logare, validare, stocare în cache, WebSockets și multe altele.
Care sunt elementele de bază ale NestJS?
Componentele de construcție ale aplicațiilor Nest sunt enumerate mai jos; sunt altele, dar acestea trei sunt cele mai semnificative. Să ne uităm repede la ele.
1. controlerele
Controlorii sunt responsabili de procesarea cererilor primite și de a răspunde clienților. Primește anumite solicitări HTTP, iar sistemul de rutare determină controlerul care primește ce cerere.
Apoi redactează un răspuns potrivit pentru a-l trimite. Cu ajutorul claselor și decoratorilor, se construiește un simplu colector și fiecare controler are propriul său set de rute pentru realizarea diferitelor sarcini.
2. Furnizori
Furnizorii sunt o idee cheie în Nest. Multe dintre clasele de bază Nest - servicii, depozite, fabrici, asistenți și așa mai departe - pot fi gestionate ca furnizori.
Noțiunea de bază a unui furnizor este că poate fi injectat ca o dependență; aceasta implică faptul că obiectele pot forma diverse asocieri între ele, iar rolul de „conectare” a instanțelor obiectelor poate fi externalizat în principal către sistemul de rulare Nest.
3. Module
Un modul este o clasă cu decoratorul @Module() care organizează componentele structurii aplicației. Fiecare aplicație are un modul rădăcină care este utilizat pentru a construi graficul aplicației, care rezolvă în continuare dependențele și interacțiunile dintre furnizor și modul.
Acest decorator oferă metadate lui Nest.js pentru a identifica ce componente, controlere sau alte resurse vor fi utilizate în codul aplicației și să le combine într-un singur set.
Fiecare modul are o colecție de capabilități care sunt conectate într-un fel.
Începeți cu NestJS
1. Instalare
Să instalăm NestJS și să facem un proiect cu el urmând acești pași:
Următoarea structură de directoare va fi creată ca urmare a acestui fapt:
2. controlerele
Elementele de construcție ale Cuibului sunt controlere. Acestea sunt locațiile în care vor fi tratate cererile primite. Puteți specifica calea rutei folosind modificatorii metodei HTTP (Get, Post, Put, Delete și așa mai departe), așa cum se vede în codul de mai jos.
Nestjs folosește abordarea decoratorului și este dezvoltat în principal în Typescript, deși acceptă și JavaScript. De asemenea, puteți utiliza un validator de clasă pentru a valida corpul cererii.
Voi face doar o instanță de server Nestjs și voi adăuga ValidationPipe la nivel global. Conductele sunt doar metode care se execută înaintea controlorilor. Conductele pot fi aplicate și la nivel de metodă/argument folosind decoratorul @UsePipes.
3. Furnizori
Furnizorii sunt o altă componentă critică a Nestjs. De departe, stocam date într-o variabilă temporară. Acesta este motivul pentru care o sarcină atât de simplă poate fi realizată folosind handlere Controller.
Cu toate acestea, pentru o logică mai mare și mai complicată, separarea codului și reutilizarea ar fi dificilă. Acesta este momentul în care vin furnizorii. Puteți declara/crea un furnizor pe lângă o clasă folosind decoratorul @Injectable. Apoi, folosind furnizori, puteți face injecția de dependență, înregistrarea în jurnal și alte sarcini.
4. Module
Modulele Nestjs nu sunt globale; în schimb, au profunzime.
Cu toate acestea, poate fi partajat și cu orice alte module. Deși, la fel ca Angular, oferă module globale, este mai recomandabil să păstrați Serviciile/Controllerele în modulul în care sunt utilizate cel mai frecvent în Nestjs.
NestCLI este folosit pentru a produce module de cele mai multe ori, iar furnizorii/controlerele generate în contextul acelui modul sunt adăugați automat de către CLI. Acestea sunt cunoscute ca module de caracteristici.
5. Filtre de excepții
Filtrele de excepție sunt handlere de erori care sunt invocate atunci când un controler lansează o excepție. Gestionează automat problema și oferă un mesaj de eroare adecvat și ușor de utilizat.
Multe excepții moștenite de HttpException sunt furnizate de pachetul @nestjs/common, inclusiv NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException și multe altele. Puteți chiar să vă proiectați propriul filtru de excepții.
6. Middleware
O funcție care este invocată înainte de gestionarea rutei se numește middleware. Obiectele cerere și răspuns, precum și funcția middleware next() din ciclul cerere-răspuns al aplicației, sunt accesibile funcțiilor middleware.
O variabilă numită next este de obicei utilizată pentru a identifica următoarea funcție middleware. Middleware-ul personalizat Nest poate fi implementat într-o metodă sau într-o clasă folosind decoratorul @Injectable().
7. Gardieni
Gardienii sunt responsabili doar pentru un singur lucru. Este responsabilitatea lor să evalueze dacă o cerere va fi sau nu procesată de către controlor pe baza unor circumstanțe specifice (în special, logica definită de utilizator).
Este util pentru autentificare/autorizare și este metoda recomandată în Nestjs.
Deși autentificarea/permisiunile, etc., se pot face folosind middleware, aceasta nu se face pe servere expres sau alte HTTP, deoarece acestea nu au un context puternic asociat și nu au niciun motiv să știe ce metodă va fi folosită pentru a procesa cererea.
Avantaje
- Cadrul se bazează în mare măsură pe adnotări, care sunt folosite pentru a produce orice, de la puncte finale la documentația Swagger. Punctele finale sunt de bază și ordonate, iar adnotările facilitează dezvoltarea în general.
- Este simplu să externalizați module de uz general și să reutilizați codul în multe proiecte, deoarece Nest.js este un cadru bazat pe module.
- Structura folderului Nest.js este influențată semnificativ de Angular. Atunci când proiectați un serviciu Nest, acest lucru permite un timp de nefuncționare minim.
- Componentele au propriile directoare, cu rădăcina care conține modulul aplicației și fișierul principal. Datorită simplității structurii, se poate acorda mai multă atenție designului punctelor finale și clienților acestora, mai degrabă decât structurii aplicației.
- Nest, ca și Angular, oferă un instrument frumos de linie de comandă, Nestjs/cli, care este disponibil prin Managerul de pachete Node.
Dezavantaje
- Nest are un avantaj în ceea ce privește utilizarea TypeScript și integrarea Angular, dar îi lipsește sprijinul financiar al unei corporații uriașe.
- Lipsa documentației reprezintă cea mai mare amenințare pentru utilizatorii Nest. Deși cadrul are interacțiuni excelente cu alte cadre, documentația este rară și nu abordează eventualele dificultăți.
- Nest are un avantaj în ceea ce privește utilizarea TypeScript și Angular.
Concluzie
NestJS oferă dezvoltatorilor un avans uriaș. Pentru a începe dezvoltarea, tot ce trebuie să faceți este creați o nouă aplicație și ești gata să pleci. Acest cadru oferă imediat un impuls semnificativ, ajutându-vă în același timp să parcurgeți etape suplimentare prin stabilirea unei arhitecturi de aplicație adecvate.
Utilizează metode și tehnologii de ultimă oră pentru a produce aplicații care sunt atât gestionabile, cât și de lungă durată. Poate fi folosit pentru a vă conecta la GraphQL, WebSockets și pentru a construi microservicii.
Lasă un comentariu