2021. gadā JavaScript bija visplašāk izmantotā programmēšanas valoda.
Šīs tehnoloģijas pievilcība ir nenoliedzama, par ko liecina lielais ietvaru skaits, kas nodrošina JavaScript programmēšanu.
Priekšgalā ir Angular, React un Vue, kā arī Express un Next aizmugurē, lai pieminētu dažus.
Tā kā JavaScript ir pieejams tik daudz brīnišķīgu aizmugurprogrammēšanas ietvaru, iespējams, jūs domājat, kāpēc man vajadzētu meklēt kaut ko citu, nevis vienkārši izmantot Express vai Next.
Iespējams, jums ātri jāuzsāk izstrādes process ar pienācīgu katlu, un manuāla ne tikai jaunu kontrolieru, bet arī pakalpojumu pievienošana padara jūs slimu.
Vai arī vēlaties izveidot lielu, mērogojamu programmatūru, kuru ir viegli pārvaldīt. Vai varbūt jūs vienkārši vēlaties strādāt efektīvāk un ērtāk.
Neatkarīgi no tā, kura situācija ir patiesa, Nest.js var būt ideāls risinājums jūsu vajadzībām.
Šī ziņa sniegs NestJS ieskatus, kā arī praktisku pieredzi.
Kas ir NestJS?
NestJS ir progresīvs Node ietvars, kas ir atvērtā koda, paplašināms un pielāgojams .Js ietvars aizmugursistēmas izveidei, iesaistīšanai un izaicinīšanai. Tagad tas ir mezgls ar ātrāko pieauguma tempu.
TypeScript ietvars js. NestJS tiek izmantots, lai izveidotu lietojumprogrammas, kas ir mērogojamas, pārbaudāmas un brīvi savienotas.
Tas pievieno Node mērogojamību. Js serveri ir pacelti pilnīgi jaunā līmenī. Starp atbalstītajām datu bāzēm ir PostgreSQL, MongoDB un MySQL.
NestJS ir paplašināms, jo to var izmantot ar citām bibliotēkām; elastīga, jo tā ir pilnībā pielāgojama ekosistēmai. Un progresīvs, jo tas atbalsta JavaScript funkcijas un dizaina principus.
To galvenokārt ietekmē Angular, React un Vue, un tam ir iebūvēta atkarības injekcija.
Apkalpošana
- To ir vienkārši lietot, apgūt un apgūt.
- Tas ir bezmaksas un atvērtais avots (MIT licence)
- Jaudīgs komandrindas interfeiss (CLI) lielākai produktivitātei un izstrādes vienkāršībai
- Vienību testēšanas programmas, kas ir vienkārši lietojamas
- Tiek izmantota TypeScript — stingri drukāta valoda, kas ir JavaScript superkopa.
- Aktīvās kodu bāzes izstrāde un uzturēšana.
- Atbalsts simtiem ligzdai raksturīgu moduļu, kas atvieglo saskarni ar tādām populārām tehnoloģijām un idejām kā TypeORM, Mongoose, GraphQL, reģistrēšanu, validāciju, kešatmiņu, WebSockets un daudz ko citu.
Kādi ir NestJS pamatelementi?
Tālāk ir norādītas Nest lietojumprogrammu ēkas sastāvdaļas. ir arī citi, bet šie trīs ir visnozīmīgākie. Apskatīsim tos ātri.
1. Kontrolieri
Kontrolieri ir atbildīgi par ienākošo pieprasījumu apstrādi un atbildēm uz klientiem. Tā saņem konkrētus HTTP pieprasījumus, un maršrutēšanas sistēma nosaka, kurš kontrolleris saņem kādu pieprasījumu.
Pēc tam tā izstrādā piemērotu atbildi, ko nosūtīt. Ar klašu un dekoratoru palīdzību tiek uzbūvēts vienkāršs kolektors un katram kontrolierim ir savs maršrutu komplekts dažādu uzdevumu veikšanai.
2. Pakalpojumu sniedzēji
Pakalpojumu sniedzēji ir galvenā Nest ideja. Daudzas no galvenajām Nest klasēm — pakalpojumi, krātuves, rūpnīcas, palīgi un tā tālāk — var tikt apstrādāti kā pakalpojumu sniedzēji.
Pakalpojumu sniedzēja pamatjēdziens ir tāds, ka to var injicēt kā atkarību; tas nozīmē, ka objekti var veidot dažādas asociācijas viens ar otru, un objektu gadījumu “savienošanas” lomu galvenokārt var uzticēt Nest izpildlaika sistēmai.
3. Moduļi
Modulis ir klase ar @Module() dekoratoru, kas organizē lietojumprogrammas struktūras komponentus. Katrai lietojumprogrammai ir saknes modulis, kas tiek izmantots, lai izveidotu lietojumprogrammas grafiku, kas tālāk atrisina atkarības un mijiedarbību starp nodrošinātāju un moduli.
Šis dekorētājs sniedz metadatus Nest.js, lai noteiktu, kuri komponenti, kontrolleri vai citi resursi tiks izmantoti lietojumprogrammas kodā, un apvienotu tos vienā komplektā.
Katram modulim ir iespēju kolekcija, kas ir kaut kādā veidā savienota.
Darba sākšana ar NestJS
1. uzstādīšana
Instalēsim NestJS un izveidosim ar to projektu, veicot šādas darbības:
Tā rezultātā tiks izveidota šāda direktoriju struktūra:
2. Kontrolieri
Nest celtniecības bloki ir kontrolieri. Šīs ir vietas, kur tiks apstrādāti ienākošie pieprasījumi. Varat norādīt maršruta ceļu, izmantojot HTTP metodes modifikatorus (Iegūt, Publicēt, Put, Dzēst un tā tālāk), kā redzams tālāk esošajā kodā.
Nestjs izmanto dekoratora pieeju un galvenokārt tiek izstrādāts Typescript, lai gan tas atbalsta arī JavaScript. Varat arī izmantot klases pārbaudītāju, lai apstiprinātu pieprasījuma pamattekstu.
Es tikai izveidošu Nestjs servera gadījumu un pievienošu ValidationPipe globāli. Caurules ir tikai metodes, kas tiek izpildītas pirms kontrolieriem. Caurules var izmantot arī metodes/argumentu līmenī, izmantojot @UsePipes dekoratoru.
3. Pakalpojumu sniedzēji
Pakalpojumu sniedzēji ir vēl viena svarīga Nestjs sastāvdaļa. Līdz šim es glabāju datus pagaidu mainīgajā. Tāpēc tik vienkāršu uzdevumu var veikt, izmantojot Controller apdarinātājus.
Tomēr lielākai, sarežģītākai loģikai koda atdalīšana un atkārtota izmantošana būtu sarežģīta. Tas ir tad, kad ienāk piegādātāji. Varat deklarēt/izveidot pakalpojumu sniedzēju klases augšpusē, izmantojot @Injectable dekoratoru. Pēc tam, izmantojot pakalpojumu sniedzējus, varat veikt atkarības ievadīšanu, reģistrēšanu un citus uzdevumus.
4. Moduļi
Nestjs moduļi nav globāli; tā vietā viņiem ir dziļums.
Tomēr to var koplietot arī ar citiem moduļiem. Lai gan tas, tāpat kā Angular, piedāvā globālos moduļus, pakalpojumus/kontrollerus ieteicams paturēt tajā modulī, kur tos visbiežāk izmanto Nestjs.
Moduļu ražošanai lielāko daļu laika tiek izmantots NestCLI, un CLI automātiski pievieno nodrošinātājus/kontrolierus, kas ģenerēti šī moduļa kontekstā. Tie ir pazīstami kā funkciju moduļi.
5. Izņēmumu filtri
Izņēmuma filtri ir kļūdu apstrādātāji, kas tiek izsaukti, kad kontrolieris izdara izņēmumu. Tas automātiski pārvalda problēmu un nodrošina atbilstošu, lietotājam draudzīgu kļūdas ziņojumu.
Daudzus HttpException mantotos izņēmumus nodrošina pakotne @nestjs/common, tostarp NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException un daudzi citi. Jūs pat varat izveidot savu ExceptionFilter.
6. Starpprogrammatūra
Funkciju, kas tiek izsaukta pirms maršruta apstrādātāja, sauc par starpprogrammatūru. Pieprasījuma un atbildes objekti, kā arī nākamā() starpprogrammatūras funkcija lietojumprogrammas pieprasījuma-atbildes ciklā ir pieejami starpprogrammatūras funkcijām.
Mainīgo, ko sauc par nākamo, parasti izmanto, lai identificētu nākamo starpprogrammatūras funkciju. Pielāgotu Nest starpprogrammatūru var ieviest metodē vai klasē, izmantojot @Injectable() dekoratoru.
7. Aizsargi
Apsargi ir atbildīgi tikai par vienu lietu. Viņu pienākums ir novērtēt, vai pārzinis apstrādās pieprasījumu, pamatojoties uz konkrētiem apstākļiem (konkrēti, lietotāja definētu loģiku).
Tā ir noderīga autentifikācijai/autorizācijai un ir ieteicamā metode Nestjs.
Lai gan autentifikāciju/atļaujas u.c. var veikt, izmantojot starpprogrammatūru, tas netiek darīts ekspress vai citos HTTP serveros, jo tiem nav saistīta spēcīga konteksta un nav iemesla zināt, kura metode tiks izmantota pieprasījuma apstrādei.
Priekšrocības
- Ietvars ir ļoti atkarīgs no anotācijām, kuras tiek izmantotas, lai izveidotu jebko, sākot no galapunktiem un beidzot ar Swagger dokumentāciju. Galapunkti ir vienkārši un sakārtoti, un anotācijas kopumā atvieglo izstrādi.
- Ir vienkārši izmantot vispārējas nozīmes moduļus un atkārtoti izmantot kodu daudzos projektos, jo Nest.js ir uz moduļiem balstīta sistēma.
- Nest.js mapju struktūru būtiski ietekmē Angular. Izstrādājot Nest pakalpojumu, tas nodrošina minimālu dīkstāves laiku.
- Komponentiem ir savi direktoriji, kuru saknē ir lietojumprogrammas modulis un galvenais fails. Struktūras vienkāršības dēļ vairāk uzmanības var pievērst galapunktu un to klientu dizainam, nevis lietojumprogrammas struktūrai.
- Nest, tāpat kā Angular, piedāvā jauku komandrindas rīku Nestjs/cli, kas ir pieejams, izmantojot Node Package Manager.
Trūkumi
- Nest ir priekšrocības TypeScript izmantošanas un leņķiskās integrācijas ziņā, taču tai trūkst milzīgas korporācijas finansiālā atbalsta.
- Dokumentācijas trūkums rada vislielākos draudus Nest lietotājiem. Lai gan sistēmai ir lieliska mijiedarbība ar citiem ietvariem, dokumentācija ir maza un nerisina iespējamās grūtības.
- Nest ir priekšrocības TypeScript lietojuma un Angular ziņā.
Secinājumi
NestJS sniedz izstrādātājiem milzīgus panākumus. Lai sāktu attīstību, viss, kas jums jādara, ir izveidot jaunu lietotni un viss ir kārtībā. Šis ietvars uzreiz nodrošina ievērojamu stimulu, vienlaikus palīdzot veikt papildu posmus, izveidojot piemērotu lietotņu arhitektūru.
Tajā tiek izmantotas visprogresīvākās metodes un tehnoloģijas, lai radītu lietojumprogrammas, kas ir gan pārvaldāmas, gan ilgstošas. To var izmantot, lai izveidotu savienojumu ar GraphQL, WebSockets un izveidotu mikropakalpojumus.
Atstāj atbildi