In u 2021, JavaScript era u linguaghju di prugrammazione più utilizatu.
L'appellu di sta tecnulugia hè innegabile, cum'è vistu da u vastu numeru di frameworks chì permettenu a prugrammazione JavaScript.
Ci sò Angular, React, è Vue nantu à u frontend, è ancu Express è Next in u backend, per citarà uni pochi.
Cù tanti frameworks meravigliosi per a prugrammazione backend in JavaScript accessibile, pudete esse pensate perchè cercheraghju qualcosa di sfarente invece di solu aduprà Express o Next.
Forse avete bisognu di avvià rapidamente u prucessu di sviluppu cù un boilerplate decentu, è aghjunghje manualmente micca solu novi cuntrolli, ma ancu servizii ti rende malatu.
O vulete creà un software grande è scalabile chì hè simplice di gestisce. O forse solu vulete travaglià in una manera più efficiente è cunvene.
Indipendentemente da quale hè vera in a vostra circustanza, Nest.js pò esse a suluzione perfetta per i vostri bisogni.
Questu post vi darà insights NestJS è ancu una sperienza pratica.
Cosa hè NestJS?
NestJS hè un framework Node progressiu chì hè open-source, espansibile è adattabile .Js framework per a custruzzione, l'ingaghjamentu è i sistemi di backend sfida. Avà hè u Node cù u ritmu di crescita più veloce.
FrameScript TypeScript per js. NestJS hè utilizatu per creà applicazioni chì sò scalabili, testabili è cunnessi liberamente.
Aghjunghje scalabilità à Node. I servitori Js sò stati purtati à un livellu sanu novu. PostgreSQL, MongoDB è MySQL sò trà e basa di dati supportati.
NestJS hè estensibile perchè pò esse usatu cù altre biblioteche; flessibile per via di u so ecosistema adattabile cumpletamente. È progressiva postu chì sustene e funzioni JavaScript è i principii di disignu.
Hè influenzatu principarmenti da Angular, React, è Vue è vene cun iniezione di dependenza integrata.
Features
- Hè simplice d'utilizà, amparà è maestru.
- Hè liberu è open-source (licenza MIT)
- Interfaccia di linea di comando potente (CLI) per una produttività aumentata è simplicità di sviluppu
- Programmi di teste di unità chì sò simplici per aduprà
- TypeScript, una lingua strettamente tipografiata chì hè un superset di JavaScript, hè utilizatu.
- Sviluppu è mantenimentu di una basa di codice attiva.
- Supportu per centinaie di moduli specifichi per u nidu chì facenu simplice l'interfaccia cù tecnulugia è idee populari cum'è TypeORM, Mongoose, GraphQL, logging, validazione, caching, WebSockets, è più.
Chì sò i blocchi di costruzione di NestJS?
I cumpunenti di custruzzione di l'applicazioni Nest sò elencati quì sottu; ci sò altri, ma questi trè sò i più significati. Fighjemu à elli rapidamente.
1. Controllers
I cuntrolli sò incaricati di trattà e dumande entrate è di risponde à i clienti. Riceve richieste HTTP particulare, è u sistema di routing determina quale controller riceve quale dumanda.
Allora scrive una risposta adatta per mandà. Cù l'aiutu di classi è decoratori, un cullettore simplice hè custruitu è ogni controller hà u so propiu set di rotte per fà diverse attività.
2. Furnisseurs
I fornitori sò una idea chjave in Nest. Parechje di e classi core Nest - servizii, repository, fabbriche, aiutanti, è cusì - ponu esse trattatu cum'è fornituri.
A nozione basica di un fornitore hè chì pò esse injected cum'è una dependenza; questu implica chì l'uggetti ponu formate diverse associazioni l'una cù l'altru, è u rolu di "cablare" istanze di l'uggetti pò esse principalmente outsourced à u sistema di runtime Nest.
3. Moduli
Un modulu hè una classa cù u decoratore @Module() chì urganizeghja i cumpunenti di a struttura di l'applicazione. Ogni applicazione hà un modulu radicali chì hè utilizatu per custruisce u graficu di l'applicazione, chì risolve ancu e dependenzii è l'interazzione trà u fornitore è u modulu.
Stu decoratore dà metadati à Nest.js per identificà quali cumpunenti, cuntrolli, o altre risorse seranu utilizati in u codice di l'applicazione è combina in un unicu set.
Ogni modulu hà una cullizzioni di capacità chì sò cunnessi in qualchì modu.
Cumincià cù NestJS
1. stallanu
Installemu NestJS è facemu un prughjettu cun ellu seguendu sti passi:
A seguente struttura di repertoriu serà creata per quessa:
2. Controllers
I blocchi di costruzione di u Nest sò cuntrolli. Quessi sò i lochi induve e dumande in entrata seranu trattate. Pudete specificà u percorsu di a strada utilizendu modificatori di u metu HTTP (Get, Post, Put, Delete, etc.) decoratori, cum'è vistu in u codice sottu.
Nestjs impiega l'approcciu di decoratore è hè soprattuttu sviluppatu in Typescript, ancu s'ellu supporta ancu JavaScript. Pudete ancu aduprà un validatore di classi per cunvalidà u corpu di dumanda.
Aghju da fà una istanza di u servitore Nestjs è aghjunghje ValidationPipe in u mondu. Pipe sò solu metudi chì eseguisce davanti à i Controllers. Pipe pò ancu esse appiicati à u livellu di metudu / argumentu cù u decoratore @UsePipes.
3. Furnisseurs
I fornituri sò un altru cumpunente criticu di Nestjs. Per luntanu, stava almacenendu dati in una variabile tempurale. Hè per quessa chì un compitu cusì simplice pò esse realizatu usendu i gestori di Controller.
In ogni casu, per una logica più grande è più cumplicata, a separazione di u codice è a reutilizazione saria difficiule. Questu hè quandu i fornituri entranu. Pudete dichjarà / creà un fornitore in cima di una classa usendu u decoratore @Injectable. Allora, aduprendu i fornituri, pudete fà iniezione di dependenza, logging, è altre attività.
4. Moduli
I moduli Nestjs ùn sò micca globale; invece, anu prufundità.
Tuttavia, pò esse spartutu ancu cù qualsiasi altri moduli. Ancu s'ellu, cum'è Angular, offre Moduli Globali, hè più cunsigliatu di mantene Servizi / Controllers in u modulu induve sò più cumunimenti usati in Nestjs.
U NestCLI hè utilizatu per pruduce moduli a maiò parte di u tempu, è i fornituri / cuntrolli generati in u cuntestu di quellu modulu sò automaticamente aghjuntu da a CLI. Quessi sò cunnisciuti cum'è moduli di funziunalità.
5. Filtri eccezzioni
I filtri d'eccezzioni sò gestori d'errore chì sò invucati quandu un Controller lancia una eccezzioni. Gestisce automaticamente u prublema è furnisce un missaghju d'errore adattatu è faciule d'utilizatore.
Parechji HttpException ereditati Eccezzioni sò furniti da u pacchettu @nestjs/common, cumprese NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, è assai altri. Pudete ancu cuncepisce u vostru propiu ExceptionFilter.
6. Middleware
Una funzione chì hè invucata prima di u gestore di a strada hè chjamata middleware. L'oggetti di dumanda è risposta, è ancu a funzione middleware next () in u ciculu di dumanda-risposta di l'applicazione, sò accessibili à e funzioni middleware.
Una variabile chjamata next hè tipicamente utilizata per identificà a prossima funzione middleware. U middleware Custom Nest pò esse implementatu in un metudu o una classa utilizendu u decoratore @Injectable ().
7. Guardie
I guardiani sò solu rispunsevuli di una cosa. Hè a so rispunsabilità di valutà se una dumanda serà trattata o micca da u controller basatu annantu à circustanze specifiche (Specificamenti, logica definita da l'utilizatori).
Hè utile per l'autentificazione / l'autorizazione è hè u metudu cunsigliatu in Nestjs.
Ancu se l'autentificazione / permessi, etc., ponu esse fattu cù middleware, ùn hè micca fattu in servitori espressi o altri HTTP postu chì ùn anu micca un cuntestu forte in relazione è ùn anu micca ragiuni per sapè quale metudu serà utilizatu per processà a dumanda.
vantaghji
- U quadru hè assai dipendente di l'annotazioni, chì sò usati per pruduce qualcosa da l'endpoints à a documentazione di Swagger. I punti finali sò basi è ordinati, è l'annotazioni facenu u sviluppu più faciule in generale.
- Hè simplice per esternalizà moduli di u scopu generale è riutilizà u codice in parechji prughjetti postu chì Nest.js hè un framework basatu in moduli.
- A struttura di cartulare di Nest.js hè significativamente influenzata da Angular. Quandu cuncepisce un serviziu Nest, questu permette un tempu d'inattività minimu.
- I cumpunenti anu u so propiu cartulari, cù a radica chì cuntene u modulu di l'applicazione è u schedariu principale. A causa di a simplicità di a struttura, più attenzione pò esse messa à u disignu di l'endpoints è i so clienti invece di a struttura di l'applicazione.
- Nest, cum'è Angular, offre un bonu strumentu di linea di cumanda, Nestjs/cli, chì hè dispunibule attraversu Node Package Manager.
Tu me
- Nest hà un vantaghju in quantu à l'usu di TypeScript è l'integrazione Angular, ma ùn manca u supportu finanziariu di una grande corporazione.
- A mancanza di documentazione rappresenta a più grande minaccia per l'utilizatori di Nest. Ancu se u quadru hà interazzioni eccellenti cù altri frameworks, a ducumentazione hè sparsa è ùn affronta alcuna difficultà potenziale.
- Nest hà un vantaghju in quantu à l'usu di TypeScript è Angular.
cunchiusioni
NestJS offre à i sviluppatori una gamba enormosa. Per inizià u sviluppu, tuttu ciò chì duvete fà hè creà una nova app è site bonu per andà. Stu quadru furnisce un impulsu significativu subitu, mentre chì vi aiuta ancu à piglià tappe supplementari stabilendu una architettura app adatta.
Face usu di metudi è tecnulugia d'avanguardia per pruduce l'applicazioni chì sò à tempu gestibili è longu. Pò esse usatu per cunnette à GraphQL, WebSockets, è custruisce microservizii.
Lascia un Audiolibro