Në vitin 2021, JavaScript ishte gjuha programuese më e përdorur.
Tërheqja e kësaj teknologjie është e pamohueshme, siç shihet nga numri i madh i kornizave që mundësojnë programimin JavaScript.
Ka Angular, React dhe Vue në pjesën e përparme, si dhe Express dhe Next në pjesën e pasme, për të përmendur disa.
Me kaq shumë korniza të mrekullueshme për programimin e backend-it të aksesueshëm në JavaScript, ju mund të mendoni pse do të kërkoja diçka ndryshe sesa thjesht të përdor Express ose Next.
Ndoshta ju duhet të filloni shpejt procesin e zhvillimit me një pllakë të mirë kazan, dhe duke shtuar manualisht jo vetëm kontrollues të rinj, por edhe shërbime, ju sëmureni.
Ose dëshironi të krijoni softuer të madh, të shkallëzuar që është i thjeshtë për t'u menaxhuar. Ose ndoshta thjesht dëshironi të punoni në një mënyrë më efikase dhe më të përshtatshme.
Pavarësisht se cila është e vërtetë në rrethanat tuaja, Nest.js mund të jetë zgjidhja perfekte për nevojat tuaja.
Ky postim do të sigurojë njohuri të NestJS, si dhe përvojë praktike.
Çfarë është NestJS?
NestJS është një kuadër progresiv Node që është me burim të hapur, i zgjerueshëm dhe i adaptueshëm .Js kornizë për ndërtimin, angazhimin dhe sfidimin e sistemeve të backend-it. Tani është nyja me normën më të shpejtë të rritjes.
Korniza TypeScript për js. NestJS përdoret për të krijuar aplikacione që janë të shkallëzueshme, të testueshme dhe të lidhura lirshëm.
Ai shton shkallëzueshmërinë në Node. Serverët Js janë çuar në një nivel krejtësisht të ri. PostgreSQL, MongoDB dhe MySQL janë ndër bazat e të dhënave të mbështetura.
NestJS është i zgjerueshëm sepse mund të përdoret me biblioteka të tjera; fleksibël për shkak të ekosistemit të tij të adaptueshëm të plotë. Dhe progresive pasi mbështet veçoritë e JavaScript dhe parimet e dizajnit.
Ai ndikohet kryesisht nga Angular, React dhe Vue dhe vjen me injeksion të integruar të varësisë.
karakteristika
- Është e thjeshtë për t'u përdorur, mësuar dhe zotëruar.
- Është falas dhe burim të hapur (licencë MIT)
- Ndërfaqja e fuqishme e linjës së komandës (CLI) për rritjen e produktivitetit dhe thjeshtësinë e zhvillimit
- Programe të testimit të njësive që janë të thjeshta për t'u përdorur
- Përdoret TypeScript, një gjuhë e shtypur ngushtë që është një superbashkësi e JavaScript.
- Zhvillimi dhe mirëmbajtja e një baze kodesh aktive.
- Mbështetje për qindra module specifike të folesë që e bëjnë të thjeshtë ndërlidhjen me teknologjitë dhe idetë e njohura si TypeORM, Mongoose, GraphQL, logging, validation, caching, WebSockets dhe më shumë.
Cilat janë blloqet e ndërtimit të NestJS?
Komponentët e ndërtimit të aplikacioneve Nest janë renditur më poshtë; ka të tjera, por këto tre janë më të rëndësishmet. Le t'i hedhim një sy atyre shpejt.
1. kontrollorët
Kontrollorët janë përgjegjës për përpunimin e kërkesave hyrëse dhe për t'iu përgjigjur klientëve. Ai merr kërkesa të veçanta HTTP dhe sistemi i rrugëzimit përcakton se cili kontrollues merr cilën kërkesë.
Më pas harton një përgjigje të përshtatshme për ta dërguar. Me ndihmën e klasave dhe dekoruesve, ndërtohet një kolektor i thjeshtë dhe çdo kontrollues ka grupin e vet të rrugëve për kryerjen e detyrave të ndryshme.
2. Ofruesit
Ofruesit janë një ide kryesore në Nest. Shumë nga klasat kryesore të Nest - shërbimet, depot, fabrikat, ndihmësit etj. - mund të trajtohen si ofrues.
Nocioni bazë i një ofruesi është se ai mund të injektohet si një varësi; kjo nënkupton që objektet mund të formojnë lidhje të ndryshme me njëri-tjetrin dhe roli i "lidhjes" së rasteve të objekteve mund t'i jepet kryesisht sistemit të funksionimit Nest.
3. Modulet
Një modul është një klasë me dekoruesin @Module() që organizon komponentët e strukturës së aplikacionit. Çdo aplikacion ka një modul rrënjë që përdoret për të ndërtuar grafikun e aplikacionit, i cili zgjidh më tej varësitë dhe ndërveprimet midis ofruesit dhe modulit.
Ky dekorues i jep meta të dhëna Nest.js në mënyrë që të identifikojë se cilët komponentë, kontrollues ose burime të tjera do të përdoren në kodin e aplikacionit dhe t'i kombinojë ato në një grup të vetëm.
Çdo modul ka një koleksion të aftësive që janë të lidhura në një farë mënyre.
Fillimi me NestJS
1. instalim
Le të instalojmë NestJS dhe të bëjmë një projekt me të duke ndjekur këto hapa:
Struktura e mëposhtme e drejtorisë do të krijohet si rezultat i kësaj:
2. kontrollorët
Blloqet e ndërtimit të Nest janë kontrollorët. Këto janë vendet ku do të trajtohen kërkesat hyrëse. Mund të specifikoni shtegun e rrugës duke përdorur modifikuesit e metodës HTTP (Merr, Posto, Vendos, Fshi etj.), siç shihet në kodin më poshtë.
Nestjs përdor qasjen e dekoruesit dhe është zhvilluar kryesisht në Typescript, megjithëse mbështet gjithashtu JavaScript. Ju gjithashtu mund të përdorni një vleftësues të klasës për të vërtetuar trupin e kërkesës.
Unë thjesht do të krijoj një shembull të serverit Nestjs dhe do të shtoj ValidationPipe globalisht. Tubat janë vetëm metoda që ekzekutohen përpara Kontrollorëve. Tubat mund të aplikohen gjithashtu në nivelin e metodës/argumentit duke përdorur dekoruesin @UsePipes.
3. Ofruesit
Ofruesit janë një tjetër komponent kritik i Nestjs. Deri tani, unë po ruaja të dhëna në një ndryshore të përkohshme. Kjo është arsyeja pse një detyrë kaq e thjeshtë mund të realizohet duke përdorur mbajtësit e Controller.
Megjithatë, për logjikën më të madhe, më të ndërlikuar, ndarja dhe ripërdorimi i kodit do të ishte i vështirë. Këtu hyjnë furnitorët. Mund të deklaroni/krijoni një ofrues në krye të një klase duke përdorur dekoruesin @Injectable. Më pas, duke përdorur ofruesit, mund të bëni injektimin e varësisë, regjistrimin dhe detyra të tjera.
4. Modulet
Modulet Nestjs nuk janë globale; në vend të kësaj, ata kanë thellësi.
Sidoqoftë, ai mund të ndahet edhe me çdo modul tjetër. Ndonëse, si Angular, ofron Module Globale, është më e këshillueshme që të mbahen Shërbimet/Kontrolluesit në modulin ku ato përdoren më shpesh në Nestjs.
NestCLI përdoret për të prodhuar module shumicën e kohës dhe ofruesit/kontrolluesit e krijuar në kontekstin e atij moduli shtohen automatikisht nga CLI. Këto njihen si module të veçorive.
5. Filtrat e përjashtimit
Filtrat e përjashtimit janë trajtues gabimesh që thirren kur një kontrollues bën një përjashtim. Ai menaxhon automatikisht problemin dhe jep një mesazh gabimi të përshtatshëm, miqësor për përdoruesit.
Shumë përjashtime të trashëguara HttpException ofrohen nga paketa @nestjs/common, duke përfshirë NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException dhe shumë të tjerë. Ju madje mund të dizajnoni filtrin tuaj të përjashtimit.
6. Ndërmarrja e mesme
Një funksion që thirret përpara mbajtësit të rrugës quhet softuer i mesëm. Objektet e kërkesës dhe përgjigjes, si dhe funksioni i mesëm tjetër () në ciklin kërkesë-përgjigje të aplikacionit, janë të aksesueshme për funksionet e programit të ndërmjetëm.
Një variabël i quajtur Next zakonisht përdoret për të identifikuar funksionin e ardhshëm të ndërmjetësimit. Midware i personalizuar Nest mund të zbatohet në një metodë ose një klasë duke përdorur dekoruesin @Injectable().
7. Rojet
Rojet janë përgjegjës vetëm për një gjë. Është përgjegjësia e tyre të vlerësojnë nëse një kërkesë do të përpunohet ose jo nga kontrolluesi bazuar në rrethana specifike (në mënyrë specifike, logjika e përcaktuar nga përdoruesi).
Është e dobishme për vërtetimin/autorizimin dhe është metoda e rekomanduar në Nestjs.
Megjithëse vërtetimi/lejet, etj., mund të bëhet duke përdorur softuerin e mesëm, ai nuk bëhet në serverë ekspres ose të tjerë HTTP pasi ata nuk kanë një kontekst të fortë të lidhur dhe nuk kanë arsye të dinë se cila metodë do të përdoret për të përpunuar kërkesën.
Përparësitë
- Korniza është shumë e varur nga shënimet, të cilat përdoren për të prodhuar çdo gjë nga pikat përfundimtare deri te dokumentacioni Swagger. Pikat e fundit janë themelore dhe të rregullta, dhe shënimet e bëjnë zhvillimin më të lehtë në përgjithësi.
- Është e thjeshtë për të eksternalizuar modulet me qëllime të përgjithshme dhe për të ripërdorur kodin në shumë projekte pasi Nest.js është një kornizë e bazuar në module.
- Struktura e dosjeve të Nest.js ndikohet ndjeshëm nga Angular. Kur dizajnoni një shërbim Nest, kjo lejon një kohë minimale joproduktive.
- Komponentët kanë drejtoritë e tyre, me rrënjë që përmban modulin e aplikacionit dhe skedarin kryesor. Për shkak të thjeshtësisë së strukturës, më shumë vëmendje mund t'i kushtohet dizajnit të pikave fundore dhe klientëve të tyre sesa strukturës së aplikacionit.
- Nest, si Angular, ofron një mjet të këndshëm të linjës së komandës, Nestjs/cli, i cili është i disponueshëm përmes Menaxherit të Paketave Node.
Disavantazhet
- Nest ka një avantazh për sa i përket përdorimit të TypeScript dhe integrimit Angular, por i mungon mbështetja financiare e një korporate të madhe.
- Mungesa e dokumentacionit përbën kërcënimin më të madh për përdoruesit e Nest. Megjithëse korniza ka ndërveprime të shkëlqyera me kornizat e tjera, dokumentacioni është i rrallë dhe nuk trajton ndonjë vështirësi të mundshme.
- Nest ka një avantazh për sa i përket përdorimit të TypeScript dhe Angular.
Përfundim
NestJS u ofron zhvilluesve një hap të madh. Për të filluar zhvillimin, gjithçka që duhet të bëni është krijoni një aplikacion të ri dhe ju jeni të mirë për të shkuar. Ky kuadër ofron një nxitje të konsiderueshme menjëherë, ndërkohë që ju ndihmon të ndërmerrni faza shtesë duke krijuar një arkitekturë të përshtatshme aplikacioni.
Ai përdor metoda dhe teknologji më të fundit për të prodhuar aplikacione që janë të menaxhueshme dhe afatgjatë. Mund të përdoret për t'u lidhur me GraphQL, WebSockets dhe për të ndërtuar mikroshërbime.
Lini një Përgjigju