Yn 2021, JavaScript oedd yr iaith raglennu a ddefnyddiwyd fwyaf.
Mae apêl y dechnoleg hon yn ddiymwad, fel y gwelir gan y nifer helaeth o fframweithiau sy'n galluogi rhaglennu JavaScript.
Mae Angular, React, a Vue ar y blaen, yn ogystal â Express a Next ar y pen ôl, i grybwyll ychydig.
Gyda chymaint o fframweithiau gwych ar gyfer rhaglenni backend yn JavaScript hygyrch, efallai eich bod yn meddwl pam y byddwn yn chwilio am rywbeth gwahanol yn hytrach na defnyddio Express neu Next yn unig.
Efallai bod angen i chi gychwyn y broses ddatblygu yn gyflym gyda phlât boeler teilwng, ac mae ychwanegu nid yn unig rheolwyr newydd ond hefyd gwasanaethau â llaw yn eich gwneud yn sâl.
Neu rydych chi eisiau creu meddalwedd mawr, graddadwy sy'n syml i'w reoli. Neu efallai eich bod yn dymuno gweithio mewn modd mwy effeithlon a chyfleus.
Ni waeth pa un sy'n wir yn eich amgylchiadau chi, gall Nest.js fod yn ateb perffaith ar gyfer eich anghenion.
Bydd y swydd hon yn darparu mewnwelediadau NestJS yn ogystal â phrofiad ymarferol.
Beth yw NestJS?
NestJS yn fframwaith Node blaengar sy'n ffynhonnell agored, yn ehangu ac yn addasadwy .Js fframwaith ar gyfer adeiladu, ymgysylltu a herio systemau backend. Bellach dyma'r Node gyda'r gyfradd twf gyflymaf.
Fframwaith TypeScript ar gyfer js. Defnyddir NestJS i greu cymwysiadau y gellir eu graddio, y gellir eu profi, ac sydd â chysylltiadau llac.
Mae'n ychwanegu scalability i Node. Mae gweinyddwyr Js wedi'u cymryd i lefel hollol newydd. Mae PostgreSQL, MongoDB, a MySQL ymhlith y cronfeydd data a gefnogir.
Mae NestJS yn estynadwy oherwydd gellir ei ddefnyddio gyda llyfrgelloedd eraill; hyblyg oherwydd ei hecosystem gyflawn y gellir ei haddasu. Ac yn flaengar gan ei fod yn cefnogi nodweddion JavaScript ac egwyddorion dylunio.
Mae Angular, React, a Vue yn dylanwadu'n bennaf arno ac mae'n dod â chwistrelliad dibyniaeth adeiledig.
Nodweddion
- Mae'n syml i'w ddefnyddio, ei ddysgu a'i feistroli.
- Mae'n rhad ac am ddim ac ffynhonnell agored (trwydded MIT)
- Rhyngwyneb Llinell Reoli pwerus (CLI) ar gyfer mwy o gynhyrchiant a symlrwydd datblygu
- Rhaglenni profi uned sy'n syml i'w defnyddio
- Defnyddir TypeScript, iaith sydd wedi'i theipio'n dynn sy'n uwchset o JavaScript.
- Datblygu a chynnal cronfa god weithredol.
- Cefnogaeth i gannoedd o fodiwlau nyth-benodol sy'n ei gwneud hi'n hawdd rhyngwynebu â thechnolegau a syniadau poblogaidd fel TypeORM, Mongoose, GraphQL, logio, dilysu, caching, WebSockets, a mwy.
Beth yw blociau adeiladu NestJS?
Rhestrir cydrannau adeiladu ceisiadau Nyth isod; mae eraill, ond y tri hyn yw'r rhai mwyaf arwyddocaol. Gadewch i ni edrych arnynt yn gyflym.
1. Rheolyddion
Mae rheolwyr yn gyfrifol am brosesu ceisiadau sy'n dod i mewn ac ymateb i gleientiaid. Mae'n derbyn ceisiadau HTTP penodol, ac mae'r system lwybro yn pennu pa reolwr sy'n cael pa gais.
Yna mae'n drafftio ateb addas i'w anfon allan. Gyda chymorth dosbarthiadau ac addurnwyr, mae casglwr syml yn cael ei adeiladu ac mae gan bob rheolwr ei set ei hun o lwybrau ar gyfer gwneud tasgau amrywiol.
2. Darparwyr
Mae darparwyr yn syniad allweddol yn Nyth. Gellir ymdrin â llawer o ddosbarthiadau craidd Nyth - gwasanaethau, storfeydd, ffatrïoedd, cynorthwywyr, ac yn y blaen - fel darparwyr.
Syniad sylfaenol darparwr yw y gellir ei chwistrellu fel dibyniaeth; mae hyn yn awgrymu y gall gwrthrychau ffurfio cysylltiadau amrywiol â'i gilydd, a gall rôl “weirio” achosion o wrthrychau gael eu gosod ar gontract allanol yn bennaf i system amser rhedeg Nyth.
3. Modiwlau
Mae modiwl yn ddosbarth gyda'r addurnwr @Module() sy'n trefnu cydrannau strwythur y rhaglen. Mae gan bob cymhwysiad fodiwl gwraidd a ddefnyddir i lunio graff y cymhwysiad, sy'n datrys ymhellach y dibyniaethau a'r rhyngweithiadau rhwng y darparwr a'r modiwl.
Mae'r addurnwr hwn yn rhoi metadata i Nest.js er mwyn nodi pa gydrannau, rheolyddion, neu adnoddau eraill fydd yn cael eu defnyddio yn y cod cymhwysiad a'u cyfuno mewn un set.
Mae gan bob modiwl gasgliad o alluoedd sydd wedi'u cysylltu mewn rhyw ffordd.
Dechrau arni gyda NestJS
1. gosod
Gadewch i ni osod NestJS a gwneud prosiect ag ef trwy ddilyn y camau hyn:
Bydd y strwythur cyfeiriadur canlynol yn cael ei greu o ganlyniad i hyn:
2. Rheolyddion
Mae blociau adeiladu'r Nyth yn rheolwyr. Dyma'r lleoliadau lle bydd ceisiadau i mewn yn cael eu trin. Gallwch chi nodi'r llwybr llwybr gan ddefnyddio addaswyr dull HTTP (Cael, Post, Rhoi, Dileu, ac yn y blaen) addurnwyr, fel y gwelir yn y cod isod.
Mae Nestjs yn defnyddio'r dull addurnwr ac fe'i datblygir yn bennaf mewn Teipysgrif, er ei fod hefyd yn cefnogi JavaScript. Gallwch hefyd ddefnyddio dilysydd dosbarth i ddilysu'r corff ymgeisio.
Rydw i'n mynd i wneud enghraifft gweinydd Nestjs ac ychwanegu ValidationPipe yn fyd-eang. Dim ond dulliau gweithredu cyn Rheolwyr yw pibellau. Gellir gosod pibellau hefyd ar y lefel dull / dadl gan ddefnyddio'r addurnwr @UsePipes.
3. Darparwyr
Mae darparwyr yn elfen hollbwysig arall o Nestjs. O bell ffordd, roeddwn i'n storio data mewn newidyn dros dro. Dyna pam y gellir cyflawni tasg mor syml gan ddefnyddio trinwyr Rheolydd.
Fodd bynnag, ar gyfer rhesymeg fwy, mwy cymhleth, byddai'n anodd gwahanu cod ac ailddefnyddio. Dyma pryd y daw cyflenwyr i mewn. Gallwch ddatgan/creu darparwr ar ben dosbarth drwy ddefnyddio addurnwr @Injectable. Yna, gan ddefnyddio darparwyr, gallwch chi wneud pigiad dibyniaeth, logio, a thasgau eraill.
4. Modiwlau
Nid yw modiwlau Nestjs yn fyd-eang; yn hytrach, mae ganddynt ddyfnder.
Fodd bynnag, gellir ei rannu ag unrhyw fodiwlau eraill hefyd. Er ei fod, fel Angular, yn cynnig Modiwlau Byd-eang, mae'n fwy doeth cadw Gwasanaethau / Rheolyddion yn y modiwl lle cânt eu defnyddio amlaf yn Nestjs.
Defnyddir y NestCLI i gynhyrchu modiwlau y rhan fwyaf o'r amser, ac mae darparwyr/rheolwyr a gynhyrchir yng nghyd-destun y modiwl hwnnw yn cael eu hychwanegu'n awtomatig gan y CLI. Gelwir y rhain yn fodiwlau nodwedd.
5. Hidlau Eithriad
Mae hidlwyr eithriad yn ymdrin â gwallau a ddefnyddir pan fydd Rheolydd yn taflu eithriad. Mae'n rheoli'r mater yn awtomatig ac yn cyflwyno neges gwall briodol, hawdd ei defnyddio.
Mae llawer o Eithriadau etifeddol HttpException yn cael eu darparu gan y pecyn @nestjs/common, gan gynnwys NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, a llawer o rai eraill. Gallwch chi hyd yn oed ddylunio'ch Hidlydd Eithriadol eich hun.
6. Llestri canol
Gelwir swyddogaeth a ddefnyddir cyn y triniwr llwybr yn nwyddau canol. Mae'r gwrthrychau cais ac ymateb, yn ogystal â'r swyddogaeth nwyddau canol nesaf () yng nghylch cais-ymateb y rhaglen, yn hygyrch i swyddogaethau nwyddau canol.
Yn nodweddiadol, defnyddir newidyn o'r enw nesaf i nodi'r swyddogaeth nwyddau canol nesaf. Gellir gweithredu nwyddau canol Custom Nest mewn dull neu ddosbarth gan ddefnyddio'r addurnwr @Injectable().
7. gwarchodlu
Dim ond am un peth y mae gwarchodwyr yn gyfrifol. Eu cyfrifoldeb nhw yw asesu a fydd cais yn cael ei brosesu gan y rheolwr yn seiliedig ar amgylchiadau penodol (Rhesymeg a ddiffinnir gan y defnyddiwr yn benodol).
Mae'n ddefnyddiol ar gyfer dilysu / awdurdodi a dyma'r dull a argymhellir yn Nestjs.
Er y gellir dilysu / caniatadau, ac ati, gan ddefnyddio nwyddau canol, ni wneir hyn mewn gweinyddwyr cyflym neu weinyddion HTTP eraill gan nad oes ganddynt gyd-destun cryf cysylltiedig ac nid oes ganddynt unrhyw reswm i wybod pa ddull a ddefnyddir i brosesu'r cais.
manteision
- Mae'r fframwaith yn dibynnu'n helaeth ar anodiadau, a ddefnyddir i gynhyrchu unrhyw beth o ddiweddbwyntiau i ddogfennaeth Swagger. Mae'r pwyntiau terfyn yn sylfaenol ac yn daclus, ac mae'r anodiadau yn hwyluso datblygiad yn gyffredinol.
- Mae'n syml allanoli modiwlau pwrpas cyffredinol ac ailddefnyddio cod mewn llawer o brosiectau gan fod Nest.js yn fframwaith sy'n seiliedig ar fodiwlau.
- Mae strwythur ffolder Nest.js yn cael ei ddylanwadu'n sylweddol gan Angular. Wrth ddylunio gwasanaeth Nyth, mae hyn yn caniatáu ychydig o amser segur.
- Mae gan gydrannau eu cyfeirlyfrau eu hunain, gyda'r gwraidd yn cynnwys modiwl y rhaglen a'r brif ffeil. Oherwydd symlrwydd y strwythur, gellir rhoi mwy o sylw i ddyluniad pwyntiau terfyn a'u cwsmeriaid yn hytrach na strwythur y cais.
- Mae Nest, fel Angular, yn cynnig teclyn llinell orchymyn braf, Nestjs/cli, sydd ar gael trwy Node Package Manager.
Anfanteision
- Mae gan Nest fantais o ran defnydd TypeScript ac integreiddio Angular, ond nid oes ganddo gefnogaeth ariannol corfforaeth enfawr.
- Diffyg dogfennaeth sy'n peri'r bygythiad mwyaf i ddefnyddwyr Nyth. Er bod gan y fframwaith ryngweithio rhagorol â fframweithiau eraill, mae'r ddogfennaeth yn brin ac nid yw'n mynd i'r afael ag unrhyw anawsterau posibl.
- Mae gan Nest fantais o ran defnydd TypeScript ac Angular.
Casgliad
Mae NestJS yn rhoi hwb enfawr i ddatblygwyr. I ddechrau datblygu, y cyfan sydd angen i chi ei wneud yw creu app newydd ac rydych chi'n dda i fynd. Mae'r fframwaith hwn yn rhoi hwb sylweddol ar unwaith, tra hefyd yn eich cynorthwyo i gymryd camau ychwanegol trwy sefydlu pensaernïaeth ap addas.
Mae'n defnyddio dulliau a thechnoleg flaengar i gynhyrchu cymwysiadau sy'n hylaw ac yn para'n hir. Gellir ei ddefnyddio i gysylltu â GraphQL, WebSockets, ac adeiladu microwasanaethau.
Gadael ymateb