Ngo-2021, iJavaScript yayilolona lwimi lusetyenziswa kakhulu lwenkqubo.
Isibheno sobu buchwepheshe asinakuphikiswa, njengoko sibonwa linani elikhulu lezakhelo ezenza inkqubo yeJavaScript isebenze.
Kukho i-Angular, i-React, kunye ne-Vue kwi-frontend, kunye ne-Express kunye ne-Next kwi-backend, ukukhankanya ezimbalwa.
Ngezakhelo ezininzi ezimangalisayo zenkqubo ye-backend kwiJavaScript efikelelekayo, usenokucinga ukuba kutheni ndingakhangela into eyahlukileyo kunokusebenzisa i-Express okanye i-Okulandelayo.
Mhlawumbi kufuneka utsibe inkqubo yophuhliso ngokukhawuleza nge-boilerplate endilisekileyo, kwaye ukongeza ngesandla kungekuphela nje abalawuli abatsha kodwa neenkonzo ziyakugulisa.
Okanye ufuna ukwenza isoftware enkulu, eyoyikisayo elula ukuyilawula. Okanye mhlawumbi unqwenela ukusebenza ngendlela esebenzayo nefanelekileyo.
Nokuba yeyiphi eyinyani kwimeko yakho, iNest.js inokuba sisisombululo esigqibeleleyo kwiimfuno zakho.
Esi sithuba siza kubonelela ngemibono ye-NestJS kunye namava okusebenza.
Yintoni iNestJS?
I-NestJS sisikhokelo seNdlela eqhubelekayo enomthombo ovulekileyo, ekwandiswayo, kwaye eguquguqukayo .Js isakhelo sokwakha, ukubandakanya kunye nomngeni kwiinkqubo ze-backend. Ngoku yiNode enesantya sokukhula ngokukhawuleza.
Inkqubo ye-TypeScript ye-js. I-NestJS isetyenziselwa ukwenza izicelo ezinokukalwa, ezinokuvavanywa, neziqhagamshelwe ngokukhululekileyo.
Yongeza i-scalability kwi-Node. Iiseva ze-Js zisiwe kwinqanaba elitsha ngokupheleleyo. I-PostgreSQL, i-MongoDB, kunye ne-MySQL ziphakathi kwedatha exhaswayo.
I-NestJS iyandiswa kuba ingasetyenziswa namanye amathala eencwadi; iyabhetyebhetye ngenxa yenkqubo yayo yendalo ekwaziyo ukuziqhelanisa ngokupheleleyo. Kwaye iqhubela phambili kuba ixhasa iimpawu zeJavaScript kunye nemigaqo yoyilo.
Iphenjelelwa ikakhulu yi-Angular, React, kunye ne-Vue kwaye iza nenaliti yokuxhomekeka eyakhelweyo.
Iimbonakalo
- Kulula ukuyisebenzisa, ukufunda, kunye nenkosi.
- Isimahla kwaye Vula Umnikezi (Ilayisensi ye-MIT)
- I-Powerful Command Line Interface (CLI) yokwandisa imveliso kunye nokulula uphuhliso
- Iinkqubo zokuvavanya iyunithi ekulula ukuyisebenzisa
- I-TypeScript, ulwimi oluchwethezwe ngokuqinileyo oluyi-superset yeJavaScript, luyasetyenziswa.
- Uphuhliso kunye nokugcinwa kwekhowudi esebenzayo.
- Inkxaso yamakhulu eemodyuli ezikhethekileyo zendlwane ezenza kube lula ukusebenzisana neetekhnoloji ezidumileyo kunye neengcinga ezinje ngeTypeORM, iMongoose, iGraphQL, ukugawulwa kwemithi, ukuqinisekiswa, i-caching, iWebSockets, nokunye.
Ziziphi iibhloko zokwakha ze-NestJS?
Izinto zokwakha ze-Nest izicelo zidweliswe ngezantsi; kukho ezinye, kodwa ezi zintathu zibaluleke kakhulu. Masizijonge ngokukhawuleza.
1. Abalawuli
Abalawuli bajongene nokucubungula izicelo ezingenayo kunye nokuphendula kubaxhasi. Ifumana izicelo ezithile ze-HTTP, kwaye inkqubo yomzila imisela ukuba nguwuphi umlawuli ofumana isicelo.
Emva koko ibhala impendulo efanelekileyo yokuthumela. Ngoncedo lweeklasi kunye nabahlobisi, umqokeleli olula wakhiwe kwaye umlawuli ngamnye unesethi yakhe yeendlela zokwenza imisebenzi eyahlukeneyo.
2. Ababoneleli
Ababoneleli ngumbono ophambili kwiNest. Uninzi lweeklasi ezingundoqo zeNest - iinkonzo, iindawo zokugcina, iifektri, abancedisi, njalo njalo-zinokuphathwa njengababoneleli.
Ingcinga esisiseko yomnikezeli yeyokuba inokutofwa njengokuxhomekeka; oku kuthetha ukuba izinto zinokwenza unxulumano olwahlukeneyo enye kwenye, kwaye indima "yokuhlanganisa" imizekelo yezinto inokukhutshelwa ngaphandle kakhulu kwinkqubo yexesha lokusebenza ye-Nest.
3. Iimodyuli
Imodyuli yiklasi ene-@Module () umhombi oququzelela amacandelo esakhiwo sesicelo. Isicelo ngasinye sinemodyuli yengcambu esetyenziselwa ukwakha igrafu yesicelo, esombulula ngakumbi ukuxhomekeka kunye nokusebenzisana phakathi komnikezeli kunye nemodyuli.
Lo mhombisi unika imetadata kwi-Nest.js ukuze kuchongwe ukuba ngawaphi amalungu, abalawuli, okanye ezinye izixhobo eziya kusetyenziswa kwikhowudi yesicelo kwaye zibadibanise zibe yisethi enye.
Imodyuli nganye inengqokelela yezakhono ezidityaniswe ngandlela ithile.
Ukuqalisa nge-NestJS
1. Ukufakwa
Masifake iNestJS kwaye senze iprojekthi ngayo ngokulandela la manyathelo:
Ulwakhiwo lolawulo olulandelayo luya kwenziwa ngenxa yoku:
2. Abalawuli
Iibhloko zokwakha zeNest zizilawuli. Ezi ziindawo apho izicelo zangaphakathi ziya kusingathwa. Ungakhankanya indlela yendlela usebenzisa i-HTTP modifiers (Fumana, Thumela, Beka, Cima, njalo njalo) abahlobisi, njengoko kubonwe kwikhowudi engezantsi.
I-Nestjs isebenzisa indlela yokuhombisa kwaye iphuhliswe kakhulu kwi-Typescript, nangona ikwaxhasa iJavaScript. Unokusebenzisa isingqinisiso seklasi ukuqinisekisa iqumrhu lesicelo.
Ndiza kwenza umzekelo weseva yeNestjs kwaye ndongeze iValidationPipe kwihlabathi jikelele. Imibhobho ziindlela nje ezenza phambi kwabalawuli. Imibhobho ingasetyenziswa kwinqanaba lendlela/yengxoxo kusetyenziswa umhombi we-@UsePipes.
3. Ababoneleli
Ababoneleli lelinye icandelo elibalulekileyo le-Nestjs. Ukuza kuthi ga ngoku, bendigcina idatha kwinguqu yethutyana. Yiyo loo nto umsebenzi olula unokwenziwa kusetyenziswa abalawuli abalawulayo.
Nangona kunjalo, kwingqiqo enkulu, enzima ngakumbi, ukwahlula ikhowudi kunye nokusetyenziswa kwakhona kuya kuba nzima. Kuxa ababoneleli bengena. Ungabhengeza/udale umboneleli ngaphezulu kweklasi ngokusebenzisa i-@Injectable decorator. Emva koko, usebenzisa ababoneleli, unokwenza inaliti yokuxhomekeka, ukugawulwa kwemithi, kunye neminye imisebenzi.
4. Iimodyuli
Iimodyuli zeNestjs azikho jikelele; endaweni yoko, banobunzulu.
Nangona kunjalo, inokwabelwana ngazo naziphi na ezinye iimodyuli ngokunjalo. Nangona yona, njenge-Angular, ibonelela ngeeModyuli zeGlobal, kuyacetyiswa ngakumbi ukugcina iiNkonzo/Abalawuli kwimodyuli apho zisetyenziswa kakhulu kwiiNestjs.
I-NestCLI isetyenziselwa ukuvelisa iimodyuli ixesha elininzi, kwaye ababoneleli/abalawuli abaveliswe kumxholo wale modyuli bayongezwa ngokuzenzekelayo yi-CLI. Ezi zaziwa njengeemodyuli zeempawu.
5. Izihluzi zangaphandle
Izihluzi zangaphandle ziziphatho zemposiso eziye zibizwe xa uMlawuli ephosa umkhethe. Ilawula ngokuzenzekelayo umcimbi kwaye inikezele ngomyalezo wemposiso ofanelekileyo, olungele umsebenzisi.
Uninzi lweHttpException oluzuzwe njengelifa loKwahlukile lubonelelwa yiphakheji @nestjs/common, kuquka NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, kunye nezinye ezininzi. Unokuyila eyakho i-ExceptionFilter.
6. I-Middleware
Umsebenzi oceliweyo phambi kokuba umphathi wendlela ubizwa ngokuba yi-middleware. Izinto zesicelo kunye nempendulo, kunye nomsebenzi olandelayo () we-middleware kumjikelo wesicelo-impendulo yesicelo, ziyafikeleleka kwimisebenzi ephakathi.
Uguqulo olubizwa ngokulandelayo luqhele ukusetyenziswa ukuchonga umsebenzi olandelayo we-middleware. Custom Nest middleware inokuphunyezwa ngendlela okanye udidi usebenzisa i-@Injectable() isihombi.
7. Oonogada
Abalindi banoxanduva lwento enye kuphela. Luxanduva lwabo ukuvavanya ukuba ngaba isicelo siya kuqwalaselwa na okanye hayi ngumlawuli ngokusekelwe kwiimeko ezithile (Ngokukodwa, ingqiqo echazwe ngumsebenzisi).
Iluncedo kuqinisekiso/ugunyaziso kwaye yindlela ecetyiswayo kwiNestjs.
Nangona ungqinisiso/iimvume, njl.njl., zinokwenziwa kusetyenziswa i-middleware, ayenziwa kwi-express okanye ezinye iiseva ze-HTTP kuba zingenamxholo oqinileyo ozalanayo kwaye azinasizathu sokwazi ukuba yeyiphi indlela eza kusetyenziswa ukuqhubekekisa isicelo.
eziluncedo
- Isakhelo sixhomekeke kakhulu kwiinkcazo, ezisetyenziselwa ukuvelisa nantoni na ukusuka kwisiphelo ukuya kuxwebhu lwe-Swagger. Iziphelo zisisiseko kwaye zicocekile, kwaye izichasiselo zenza uphuhliso lube lula ngokubanzi.
- Kulula ukwenza ngaphandle iimodyuli zenjongo ngokubanzi kwaye uphinde usebenzise ikhowudi kwiiprojekthi ezininzi ukusukela oko iNest.js isisakhelo esekwe kwimodyuli.
- Isakhiwo sefolda ye-Nest.js iphenjelelwa kakhulu yi-Angular. Xa uyila inkonzo yeNest, oku kuvumela ixesha elincinane lokuphumla.
- Amacandelo anolawulo lwawo, enengcambu equlathe imodyuli yesicelo kunye nefayile engundoqo. Ngenxa yokulula kwesakhiwo, ingqwalasela engakumbi inokubekwa kwi-design of endpoints kunye nabathengi babo kunokuba isakhiwo sesicelo.
- I-Nest, njenge-Angular, ibonelela ngesixhobo esihle somgca womyalelo, i-Nestjs/cli, efumaneka nge-Node Package Manager.
nezingeloncedo
- I-Nest inenzuzo malunga nokusetyenziswa kwe-TypeScript kunye nokudityaniswa kwe-Angular, kodwa ayinayo inkxaso yezemali yenkampani enkulu.
- Ukunqongophala kwamaxwebhu kubangela umngcipheko omkhulu kubasebenzisi beNest. Nangona isakhelo sinonxibelelwano olugqwesileyo nezinye izikhokelo, amaxwebhu mancinci kwaye awasombululi nabuphi na ubunzima obunokubakho.
- I-Nest ine-advanteji ngokosetyenziso lwe-TypeScript kunye ne-Angular.
isiphelo
I-NestJS ibonelela abaphuhlisi ngomlenze omkhulu phezulu. Ukuqala uphuhliso, konke okufuneka ukwenze yenza usetyenziso olutsha kwaye ulungile ukuhamba. Esi sikhokelo sibonelela ngokomelela okubalulekileyo kwangoko, ngelixa sikwakunceda ekuthatheni izigaba ezongezelelweyo ngokuseka uyilo olufanelekileyo losetyenziso.
Isebenzisa iindlela zokusika kunye netekhnoloji ukuvelisa izicelo ezilawulekayo kwaye zihlala ixesha elide. Ingasetyenziselwa ukudibanisa kwiGraphQL, iWebSockets, kunye nokwakha ii-microservices.
Shiya iMpendulo