2021 m. JavaScript buvo plačiausiai naudojama programavimo kalba.
Šios technologijos patrauklumas yra neabejotinas, kaip matyti iš daugybės schemų, įgalinančių „JavaScript“ programavimą.
Priekinėje dalyje yra „Angular“, „React“ ir „Vue“, taip pat „Express“ ir „Next“ užpakalinėje dalyje, kad būtų galima paminėti keletą.
Kai pasiekiama tiek daug nuostabių „JavaScript“ programavimo pagrindų, galbūt galvojate, kodėl turėčiau ieškoti kažko kito, o ne tiesiog naudoti „Express“ ar „Next“.
Galbūt jums reikia greitai pradėti kūrimo procesą su tinkama sistema, o rankiniu būdu pridėjus ne tik naujus valdiklius, bet ir paslaugas, susirgsite.
Arba norite sukurti didelę, keičiamo dydžio programinę įrangą, kurią būtų lengva valdyti. O gal tiesiog norite dirbti efektyviau ir patogiau.
Nepriklausomai nuo to, kas yra teisinga jūsų aplinkybėmis, Nest.js gali būti puikus sprendimas jūsų poreikiams tenkinti.
Šis įrašas suteiks „NestJS“ įžvalgų ir praktinės patirties.
Kas yra NestJS?
„NestJS“ yra progresyvi Node sistema, kuri yra atvirojo kodo, plečiama ir pritaikoma .js sistema, skirta kurti, įtraukti ir iššaukti vidines sistemas. Dabar tai sparčiausiai augantis mazgas.
„TypeScript“ sistema, skirta js. „NestJS“ naudojamas kuriant programas, kurios yra keičiamo dydžio, testuojamos ir laisvai prijungtos.
Tai padidina mazgo mastelį. Js serveriai buvo perkelti į visiškai naują lygį. „PostgreSQL“, „MongoDB“ ir „MySQL“ yra tarp palaikomų duomenų bazių.
„NestJS“ yra išplečiamas, nes jį galima naudoti su kitomis bibliotekomis; lankstus dėl prisitaikančios visavertės ekosistemos. Ir progresyvus, nes palaiko JavaScript funkcijas ir dizaino principus.
Jai daugiausia įtakos turi „Angular“, „React“ ir „Vue“ ir yra integruota priklausomybės injekcija.
Savybės
- Tai paprasta naudoti, išmokti ir įvaldyti.
- Tai nemokama ir atviro kodo (MIT licencija)
- Galinga komandų eilutės sąsaja (CLI), skirta didesniam produktyvumui ir kūrimo paprastumui
- Vienetų testavimo programos, kurias paprasta naudoti
- Naudojama TypeScript, griežtai įvesta kalba, kuri yra JavaScript superrinkinys.
- Aktyvios kodų bazės kūrimas ir priežiūra.
- Palaikymas šimtams konkrečiam lizdui skirtų modulių, kurie palengvina sąsają su populiariomis technologijomis ir idėjomis, tokiomis kaip TypeORM, Mongoose, GraphQL, registravimas, patvirtinimas, talpyklos kaupimas, WebSockets ir kt.
Kokie yra „NestJS“ elementai?
Toliau pateikiami „Nest“ programų kūrimo komponentai; yra ir kitų, bet šios trys yra reikšmingiausios. Greitai pažvelkime į juos.
1. Valdikliai
Valdytojai yra atsakingi už gaunamų užklausų apdorojimą ir atsakymus klientams. Jis gauna konkrečias HTTP užklausas, o maršruto parinkimo sistema nustato, kuris valdiklis kurią užklausą gauna.
Tada jis parengia tinkamą atsakymą, kurį reikia išsiųsti. Klasių ir dekoratorių pagalba sukuriamas paprastas kolektorius ir kiekvienas valdiklis turi savo maršrutų rinkinį įvairioms užduotims atlikti.
2. Teikėjai
Teikėjai yra pagrindinė „Nest“ idėja. Daugelis pagrindinių „Nest“ klasių – paslaugos, saugyklos, gamyklos, pagalbininkai ir pan. – gali būti tvarkomi kaip teikėjai.
Pagrindinė paslaugų teikėjo mintis yra ta, kad jis gali būti sušvirkštas kaip priklausomybė; tai reiškia, kad objektai gali sudaryti įvairias asociacijas vienas su kitu, o objektų egzempliorių „sujungimo“ vaidmenį daugiausia galima perduoti „Nest“ vykdymo sistemai.
3. Moduliai
Modulis yra klasė su @Module() dekoratoriumi, kuris organizuoja programos struktūros komponentus. Kiekviena programa turi šakninį modulį, kuris naudojamas programos grafikui sudaryti, kuris dar labiau išsprendžia teikėjo ir modulio priklausomybes ir sąveikas.
Šis dekoratorius suteikia metaduomenis Nest.js, kad nustatytų, kurie komponentai, valdikliai ar kiti ištekliai bus naudojami programos kode, ir sujungtų juos į vieną rinkinį.
Kiekvienas modulis turi tam tikru būdu sujungtų galimybių rinkinį.
Darbo su NestJS pradžia
1. montavimas
Įdiegkime „NestJS“ ir sukurkime su juo projektą atlikdami šiuos veiksmus:
Dėl to bus sukurta tokia katalogų struktūra:
2. Valdikliai
Lizdo statybiniai blokai yra valdikliai. Tai yra vietos, kuriose bus tvarkomos gaunamos užklausos. Maršruto kelią galite nurodyti naudodami HTTP metodo modifikatorius (Gauti, Paskelbti, Įdėti, Ištrinti ir t. t.), kaip matyti toliau pateiktame kode.
„Nestjs“ naudoja dekoratoriaus metodą ir dažniausiai yra sukurtas „Typescript“, nors palaiko ir „JavaScript“. Taip pat galite naudoti klasės patvirtinimo priemonę, kad patvirtintumėte užklausos turinį.
Aš tik sukursiu „Nestjs“ serverio egzempliorių ir pridėsiu „ValidationPipe“ visame pasaulyje. Vamzdžiai yra tik metodai, kurie vykdomi prieš valdiklius. Vamzdžius taip pat galima pritaikyti metodo/argumento lygiu naudojant @UsePipes dekoratorių.
3. Teikėjai
Teikėjai yra dar vienas svarbus „Nestjs“ komponentas. Iki šiol duomenis saugojau laikinajame kintamajame. Štai kodėl tokią paprastą užduotį galima atlikti naudojant valdiklio tvarkykles.
Tačiau naudojant didesnę, sudėtingesnę logiką, kodų atskyrimas ir pakartotinis naudojimas būtų sudėtingi. Tai yra tada, kai ateina tiekėjai. Naudodami @Injectable dekoratorių galite paskelbti/sukurti aukščiausios klasės teikėją. Tada naudodami teikėjus galite atlikti priklausomybės injekciją, registravimą ir kitas užduotis.
4. Moduliai
„Nestjs“ moduliai nėra globalūs; vietoj to jie turi gylį.
Tačiau jis taip pat gali būti bendrinamas su kitais moduliais. Nors jis, kaip ir „Angular“, siūlo pasaulinius modulius, patartina paslaugas / valdiklius laikyti modulyje, kuriame jie dažniausiai naudojami „Nestjs“.
NestCLI dažniausiai naudojamas moduliams gaminti, o CLI automatiškai prideda tiekėjus / valdiklius, sugeneruotus šio modulio kontekste. Jie yra žinomi kaip funkcijų moduliai.
5. Išimčių filtrai
Išimčių filtrai yra klaidų tvarkyklės, kurios iškviečiamos, kai Valdiklis pateikia išimtį. Jis automatiškai valdo problemą ir pateikia tinkamą, patogų vartotojui klaidos pranešimą.
Daugelį „HttpException“ paveldėtų išimčių suteikia paketas @nestjs/common, įskaitant „NotFoundException“, „BadRequestException“, „NotAcceptableException“, „UnauthorizedException“ ir daugelį kitų. Jūs netgi galite sukurti savo išimties filtrą.
6. Tarpinė programinė įranga
Funkcija, kuri iškviečiama prieš maršruto tvarkyklę, vadinama tarpine programine įranga. Užklausos ir atsakymo objektai, taip pat kitos () tarpinės programinės įrangos funkcija programos užklausos-atsakymo cikle yra prieinami tarpinės programinės įrangos funkcijoms.
Kintamasis, vadinamas next, paprastai naudojamas kitai tarpinės programinės įrangos funkcijai identifikuoti. Pasirinktinė Nest tarpinė programinė įranga gali būti įdiegta metodu arba klasėje naudojant @Injectable() dekoratorių.
7. Sargybiniai
Sargybiniai atsakingi tik už vieną dalyką. Jie yra atsakingi už tai, kad įvertintų, ar duomenų valdytojas apdoros užklausą, remdamasis konkrečiomis aplinkybėmis (konkrečiai, vartotojo apibrėžta logika).
Tai naudinga autentifikuojant / suteikiant įgaliojimą ir yra rekomenduojamas „Nestjs“ metodas.
Nors autentifikavimas / leidimai ir tt gali būti atliekami naudojant tarpinę programinę įrangą, tai neatliekama greituosiuose ar kituose HTTP serveriuose, nes jie neturi susieto tvirto konteksto ir neturi priežasties žinoti, kuris metodas bus naudojamas užklausai apdoroti.
Privalumai
- Sistema labai priklauso nuo anotacijų, kurios naudojamos gaminant bet ką – nuo galutinių taškų iki „Swagger“ dokumentacijos. Galutiniai taškai yra pagrindiniai ir tvarkingi, o komentarai apskritai palengvina kūrimą.
- Paprasta naudoti bendrosios paskirties modulius ir pakartotinai naudoti kodą daugelyje projektų, nes „Nest.js“ yra moduliais pagrįsta sistema.
- „Nest.js“ aplanko struktūrai didelę įtaką daro „Angular“. Kuriant „Nest“ paslaugą, tai leidžia minimaliai praleisti laiką.
- Komponentai turi savo katalogus, kurių šaknyje yra programos modulis ir pagrindinis failas. Dėl struktūros paprastumo daugiau dėmesio galima skirti galinių taškų ir jų klientų dizainui, o ne programos struktūrai.
- „Nest“, kaip ir „Angular“, siūlo puikų komandų eilutės įrankį „Nestjs/cli“, kurį galima rasti per „Node Package Manager“.
Trūkumai
- „Nest“ turi pranašumą naudojant „TypeScript“ ir „Angular“ integraciją, tačiau jam trūksta didžiulės korporacijos finansinės paramos.
- Didžiausią grėsmę „Nest“ naudotojams kelia dokumentų trūkumas. Nors sistema puikiai sąveikauja su kitomis sistemomis, dokumentacija yra menka ir nesprendžia jokių galimų sunkumų.
- „Nest“ turi pranašumą naudojant „TypeScript“ ir „Angular“.
Išvada
„NestJS“ kūrėjams suteikia daug galimybių. Norėdami pradėti kurti, viskas, ką jums reikia padaryti, tai sukurti naują programą ir tu gali eiti. Ši sistema iš karto suteikia didelį postūmį, o kartu padeda atlikti papildomus etapus, sukuriant tinkamą programos architektūrą.
Jis naudoja pažangiausius metodus ir technologijas, kad sukurtų programas, kurios būtų valdomos ir ilgalaikės. Jis gali būti naudojamas prisijungti prie GraphQL, WebSockets ir kurti mikropaslaugas.
Palikti atsakymą