Mnamo 2021, JavaScript ilikuwa lugha ya programu inayotumiwa sana.
Uvutio wa teknolojia hii hauwezi kukanushwa, kama inavyoonekana na idadi kubwa ya mifumo inayowezesha programu ya JavaScript.
Kuna Angular, React, na Vue kwenye sehemu ya mbele, na vile vile Express na Next kwenye backend, kutaja chache.
Pamoja na mifumo mingi ya ajabu ya programu ya nyuma katika JavaScript inayopatikana, unaweza kuwa unafikiri kwa nini ningetafuta kitu tofauti badala ya kutumia Express au Next.
Labda unahitaji kuharakisha mchakato wa ukuzaji haraka na boilerplate nzuri, na kuongeza kwa mikono sio tu vidhibiti vipya lakini pia huduma hukufanya mgonjwa.
Au unataka kuunda programu kubwa, inayoweza kupanuka ambayo ni rahisi kudhibiti. Au labda ungependa tu kufanya kazi kwa njia bora na rahisi.
Bila kujali ambayo ni kweli katika hali yako, Nest.js inaweza kuwa suluhisho bora kwa mahitaji yako.
Chapisho hili litatoa maarifa ya NestJS pamoja na matumizi ya vitendo.
NestJS ni nini?
NestJS ni mfumo wa Njia inayoendelea ambayo ni chanzo-wazi, inayoweza kupanuka, na inayoweza kubadilika .Js mfumo wa kujenga, kushirikisha na changamoto mifumo ya nyuma. Sasa ni Nodi yenye kasi ya ukuaji wa haraka zaidi.
Mfumo wa TypeScript wa js. NestJS inatumika kuunda programu ambazo zinaweza kuongezeka, kufanyiwa majaribio na kuunganishwa kwa urahisi.
Inaongeza scalability kwa Node. Seva za Js zimechukuliwa hadi kiwango kipya kabisa. PostgreSQL, MongoDB, na MySQL ni miongoni mwa hifadhidata zinazotumika.
NestJS inaweza kupanuka kwa sababu inaweza kutumika pamoja na maktaba zingine; kunyumbulika kwa sababu ya mfumo wake wa ikolojia unaoweza kubadilika. Na inaendelezwa kwa vile inaauni vipengele vya JavaScript na kanuni za muundo.
Huathiriwa kimsingi na Angular, React, na Vue na huja na sindano ya utegemezi iliyojengewa ndani.
Vipengele
- Ni rahisi kutumia, kujifunza, na bwana.
- Ni bure na wazi chanzo (Leseni ya MIT)
- Kiolesura chenye Nguvu cha Mstari wa Amri (CLI) kwa ajili ya kuongeza tija na urahisishaji wa ukuzaji
- Programu za kupima kitengo ambazo ni rahisi kutumia
- TypeScript, lugha iliyochapwa kwa ukali ambayo ni seti kuu ya JavaScript, inatumika.
- Ukuzaji na matengenezo ya msingi wa msimbo unaotumika.
- Usaidizi kwa mamia ya moduli mahususi za nest ambazo hurahisisha kuunganishwa na teknolojia maarufu na mawazo kama vile TypeORM, Mongoose, GraphQL, ukataji miti, uthibitishaji, akiba, WebSockets, na zaidi.
Jengo za NestJS ni zipi?
Vipengele vya ujenzi vya programu za Nest vimeorodheshwa hapa chini; kuna wengine, lakini hawa watatu ndio wa maana zaidi. Wacha tuwaangalie haraka.
1. Vidhibiti
Vidhibiti vinasimamia kushughulikia maombi yanayoingia na kujibu wateja. Inapokea maombi fulani ya HTTP, na mfumo wa uelekezaji huamua ni kidhibiti kipi kinapata ombi lipi.
Kisha huandaa jibu linalofaa kutuma. Kwa msaada wa madarasa na wapambaji, mtoza rahisi hujengwa na kila mtawala ana seti yake ya njia za kufanya kazi mbalimbali.
2. Watoa huduma
Watoa huduma ni wazo kuu katika Nest. Madarasa mengi ya msingi ya Nest - huduma, hazina, viwanda, wasaidizi, na kadhalika - yanaweza kushughulikiwa kama watoa huduma.
Wazo la msingi la mtoa huduma ni kwamba linaweza kudungwa kama tegemezi; hii inamaanisha kuwa vipengee vinaweza kuunda miunganisho mbalimbali kati ya vingine, na jukumu la "kuunganisha" matukio ya vitu linaweza kutolewa kwa mfumo wa muda wa uendeshaji wa Nest.
3. Moduli
Moduli ni darasa lenye kipambo cha @Module() ambacho hupanga vipengele vya muundo wa programu. Kila programu ina moduli ya mizizi ambayo inatumika kuunda grafu ya programu, ambayo hutatua zaidi utegemezi na mwingiliano kati ya mtoaji na moduli.
Mpambaji huyu hutoa metadata kwa Nest.js ili kutambua ni vipengele vipi, vidhibiti au nyenzo nyingine zitatumika katika msimbo wa programu na kuzichanganya katika seti moja.
Kila moduli ina mkusanyiko wa uwezo ambao umeunganishwa kwa namna fulani.
Kuanza kutumia NestJS
1. ufungaji
Wacha tusakinishe NestJS na tufanye mradi nayo kwa kufuata hatua hizi:
Muundo wa saraka ufuatao utaundwa kama matokeo ya hii:
2. Vidhibiti
Majengo ya Nest ni vidhibiti. Haya ndio maeneo ambayo maombi ya ndani yatashughulikiwa. Unaweza kutaja njia ya njia kwa kutumia virekebishaji vya njia ya HTTP (Pata, Chapisha, Weka, Futa, na kadhalika) wapambaji, kama inavyoonekana kwenye nambari iliyo hapa chini.
Nestjs hutumia mbinu ya kupamba na imeundwa zaidi katika Typescript, ingawa pia inaauni JavaScript. Unaweza pia kutumia kithibitishaji cha darasa ili kuhalalisha shirika la ombi.
Nitatengeneza mfano wa seva ya Nestjs na kuongeza ValidationPipe kimataifa. Mabomba ni njia tu zinazofanya kazi mbele ya Vidhibiti. Mabomba pia yanaweza kutumika katika kiwango cha mbinu/hoja kwa kutumia kipambo cha @UsePipes.
3. Watoa huduma
Watoa huduma ni sehemu nyingine muhimu ya Nestjs. Kufikia sasa, nilikuwa nikihifadhi data katika muundo wa muda. Ndio maana kazi rahisi kama hiyo inaweza kutekelezwa kwa kutumia vidhibiti vya Kidhibiti.
Hata hivyo, kwa mantiki kubwa, ngumu zaidi, kutenganisha msimbo na kutumia tena itakuwa vigumu. Huu ndio wakati wasambazaji wanapoingia. Unaweza kutangaza/kuunda mtoa huduma juu ya darasa kwa kutumia kipamba cha @Injectable. Kisha, kwa kutumia watoa huduma, unaweza kufanya sindano ya utegemezi, kukata miti, na kazi zingine.
4. Moduli
Moduli za Nestjs si za kimataifa; badala yake, wana kina.
Walakini, inaweza kushirikiwa na moduli zingine zozote pia. Ingawa, kama Angular, inatoa Modules za Ulimwenguni, inashauriwa zaidi kuweka Huduma/Vidhibiti katika sehemu ambayo hutumiwa sana katika Nestjs.
NestCLI hutumika kutengeneza moduli mara nyingi, na watoa huduma/vidhibiti vinavyozalishwa katika muktadha wa sehemu hiyo huongezwa kiotomatiki na CLI. Hizi zinajulikana kama moduli za vipengele.
5. Vichungi vya ubaguzi
Vichungi vya ubaguzi ni vidhibiti vya hitilafu ambavyo huombwa wakati Mdhibiti anatoa ubaguzi. Inasimamia suala kiotomatiki na kutoa ujumbe wa hitilafu unaofaa, unaofaa mtumiaji.
Vighairi vingi vilivyorithiwa vya HttpException vinatolewa na kifurushi @nestjs/common, ikijumuisha NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, na vingine vingi. Unaweza hata kubuni ExceptionFilter yako mwenyewe.
6. Vifaa vya kati
Chaguo la kukokotoa ambalo limealikwa kabla ya kidhibiti njia huitwa middleware. Vitu vya ombi na majibu, na vile vile kitendakazi kifuatacho () cha middleware katika mzunguko wa ombi-jibu la programu, kinaweza kufikiwa na vitendakazi vya middleware.
Tofauti inayoitwa inayofuata kwa kawaida hutumiwa kutambua chaguo la kukokotoa linalofuata la vyombo vya kati. Vifaa maalum vya katikati vya Nest vinaweza kutekelezwa kwa mbinu au darasa kwa kutumia kipambo cha @Injectable().
7. Walinzi
Walinzi wanawajibika kwa jambo moja tu. Ni wajibu wao kutathmini ikiwa ombi litashughulikiwa au la na kidhibiti kulingana na hali maalum (Hasa, mantiki iliyofafanuliwa na mtumiaji).
Ni muhimu kwa uthibitishaji/uidhinishaji na ndiyo njia inayopendekezwa katika Nestjs.
Ingawa uthibitishaji/ruhusa, n.k., unaweza kufanywa kwa kutumia vifaa vya kati, haifanywi kwa njia ya moja kwa moja au seva zingine za HTTP kwa kuwa hazina muktadha thabiti unaohusiana na hazina sababu ya kujua ni njia gani itatumika kushughulikia ombi.
faida
- Mfumo huo unategemea zaidi ufafanuzi, ambao hutumiwa kutoa chochote kutoka kwa vidokezo hadi hati za Swagger. Vidokezo ni vya msingi na nadhifu, na vidokezo hurahisisha maendeleo kwa ujumla.
- Ni rahisi kutoa moduli za madhumuni ya jumla na kutumia tena msimbo katika miradi mingi kwa kuwa Nest.js ni mfumo unaotegemea moduli.
- Muundo wa folda ya Nest.js umeathiriwa kwa kiasi kikubwa na Angular. Wakati wa kuunda huduma ya Nest, hii inaruhusu kupunguza muda.
- Vipengele vina saraka zao, na mzizi ulio na moduli ya programu na faili kuu. Kwa sababu ya unyenyekevu wa muundo, tahadhari zaidi inaweza kuwekwa kwa muundo wa mwisho na wateja wao badala ya muundo wa maombi.
- Nest, kama Angular, inatoa zana nzuri ya mstari wa amri, Nestjs/cli, ambayo inapatikana kupitia Node Package Manager.
Hasara
- Nest ina faida katika suala la matumizi ya TypeScript na ujumuishaji wa Angular, lakini haina usaidizi wa kifedha wa shirika kubwa.
- Ukosefu wa hati husababisha tishio kubwa zaidi kwa watumiaji wa Nest. Ingawa mfumo huo una mwingiliano bora na mifumo mingine, hati ni chache na haishughulikii matatizo yoyote yanayoweza kutokea.
- Nest ina faida katika suala la matumizi ya TypeScript na Angular.
Hitimisho
NestJS huwapa wasanidi programu nafasi nzuri zaidi. Ili kuanza maendeleo, unachohitaji kufanya ni unda programu mpya na wewe ni vizuri kwenda. Mfumo huu hutoa uboreshaji mkubwa mara moja, huku pia kukusaidia katika kuchukua hatua za ziada kwa kuanzisha usanifu unaofaa wa programu.
Hutumia mbinu na teknolojia ya kisasa ili kutoa programu zinazoweza kudhibitiwa na kudumu kwa muda mrefu. Inaweza kutumika kuunganisha kwa GraphQL, WebSockets, na kuunda huduma ndogo ndogo.
Acha Reply