2021. aastal oli JavaScript enim kasutatud programmeerimiskeel.
Selle tehnoloogia atraktiivsus on vaieldamatu, nagu näitab suur hulk JavaScripti programmeerimist võimaldavaid raamistikke.
Esiküljel on Angular, React ja Vue ning taustaprogrammis Express ja Next, kui mainida mõnda.
Kuna JavaScriptis on juurdepääsetav nii palju suurepäraseid taustaprogrammeerimise raamistikke, võite mõelda, miks ma peaksin otsima midagi muud, mitte lihtsalt kasutama Expressi või Next.
Võib-olla peate arendusprotsessi kiiresti käivitama korraliku katlaplaadiga ja lisaks uute kontrollerite, vaid ka teenuste käsitsi lisamine teeb teid haigeks.
Või soovite luua suurt skaleeritavat tarkvara, mida on lihtne hallata. Või soovite lihtsalt töötada tõhusamalt ja mugavamalt.
Olenemata sellest, milline on teie olukorras tõsi, võib Nest.js olla teie vajaduste jaoks ideaalne lahendus.
See postitus pakub NestJS-i teadmisi ja praktilist kogemust.
Mis on NestJS?
NestJS on progressiivne Node raamistik, mis on avatud lähtekoodiga, laiendatav ja kohandatav .js raamistik taustasüsteemide ehitamiseks, kaasamiseks ja väljakutsete esitamiseks. See on nüüd kiireima kasvutempoga sõlm.
TypeScripti raamistik js-i jaoks. NestJS-i kasutatakse skaleeritavate, testitavate ja lõdvalt ühendatud rakenduste loomiseks.
See lisab Node'ile skaleeritavust. Js-serverid on viidud täiesti uuele tasemele. Toetatud andmebaaside hulgas on PostgreSQL, MongoDB ja MySQL.
NestJS on laiendatav, kuna seda saab kasutada koos teiste raamatukogudega; paindlik tänu oma kohanemisvõimelisele täieõiguslikule ökosüsteemile. Ja progressiivne, kuna see toetab JavaScripti funktsioone ja disainipõhimõtteid.
Seda mõjutavad peamiselt Angular, React ja Vue ning kaasas on sisseehitatud sõltuvussüst.
FUNKTSIOONID
- Seda on lihtne kasutada, õppida ja hallata.
- See on tasuta ja avatud lähtekoodiga (MIT litsents)
- Võimas käsurea liides (CLI) suurendab tootlikkust ja arendamise lihtsust
- Ühiku testimise programmid, mida on lihtne kasutada
- Kasutatakse TypeScripti, tihedalt trükitud keelt, mis on JavaScripti superkomplekt.
- Aktiivse koodibaasi arendamine ja hooldus.
- Toetus sadade pesaspetsiifiliste moodulite jaoks, mis muudavad hõlpsaks liidese populaarsete tehnoloogiate ja ideedega, nagu TypeORM, Mongoose, GraphQL, logimine, valideerimine, vahemällu salvestamine, WebSockets ja palju muud.
Mis on NestJS-i ehitusplokid?
Nesti rakenduste ehituskomponendid on loetletud allpool; on ka teisi, kuid need kolm on kõige olulisemad. Vaatame neid kiiresti.
1. Kontrollerid
Vastutavad töötlejad vastutavad sissetulevate päringute töötlemise ja klientidele vastamise eest. See võtab vastu teatud HTTP-päringuid ja marsruutimissüsteem määrab, milline kontroller millise päringu saab.
Seejärel koostab see väljasaatmiseks sobiva vastuse. Klasside ja dekoraatorite abil ehitatakse üles lihtne kollektor ning igal kontrolleril on oma marsruudid erinevate ülesannete tegemiseks.
2. Pakkujad
Pakkujad on Nesti põhiidee. Paljusid Nesti põhiklasse – teenuseid, hoidlaid, tehaseid, abistajaid ja nii edasi – saab käsitleda pakkujatena.
Teenuseosutaja põhimõiste on, et seda saab süstida sõltuvusena; see tähendab, et objektid võivad moodustada üksteisega mitmesuguseid seoseid ja objektide eksemplaride "juhtmestiku ühendamise" rolli saab peamiselt tellida Nesti käitussüsteemile.
3. Moodulid
Moodul on @Module() dekoraatoriga klass, mis korraldab rakenduse struktuuri komponendid. Igal rakendusel on juurmoodul, mida kasutatakse rakenduse graafiku koostamiseks, mis lahendab veelgi teenusepakkuja ja mooduli vahelised sõltuvused ja interaktsioonid.
See dekoraator annab Nest.js-ile metaandmed, et tuvastada, milliseid komponente, kontrollereid või muid ressursse rakenduse koodis kasutatakse, ja ühendada need üheks komplektiks.
Igal moodulil on hulk võimalusi, mis on mingil viisil ühendatud.
NestJS-iga alustamine
1. paigaldamine
Installime NestJS-i ja loome sellega projekti, järgides neid samme:
Selle tulemusel luuakse järgmine kataloogistruktuur:
2. Kontrollerid
Pesa ehitusplokid on kontrollerid. Need on asukohad, kus käsitletakse sissetulevaid päringuid. Saate määrata marsruudi tee HTTP-meetodi modifikaatorite (Hangi, Postita, Pane, Kustuta ja nii edasi) dekoraatorite abil, nagu on näha allolevast koodist.
Nestjs kasutab dekoraatori lähenemisviisi ja on enamasti välja töötatud Typescriptis, kuigi see toetab ka JavaScripti. Taotluse keha kinnitamiseks saate kasutada ka klassi validaatorit.
Ma teen lihtsalt Nestjs serveri eksemplari ja lisan ValidationPipe'i globaalselt. Torud on lihtsalt meetodid, mis käivitatakse enne kontrollereid. Torusid saab rakendada ka meetodi/argumendi tasemel, kasutades dekoraatorit @UsePipes.
3. Pakkujad
Pakkujad on Nestjs'i veel üks oluline komponent. Siiani salvestasin andmeid ajutisse muutujasse. Seetõttu saab nii lihtsa ülesande täita kontrolleri töötlejate abil.
Suurema ja keerulisema loogika puhul oleks aga koodide eraldamine ja taaskasutamine keeruline. See on siis, kui tarnijad sisenevad. Saate deklareerida/luua teenusepakkuja klassi peal, kasutades @Injectable dekoraatorit. Seejärel saate teenusepakkujaid kasutades teha sõltuvuse süstimist, logimist ja muid toiminguid.
4. Moodulid
Nestjs-moodulid ei ole globaalsed; selle asemel on neil sügavust.
Seda saab aga jagada ka teiste moodulitega. Kuigi see, nagu Angular, pakub globaalseid mooduleid, on soovitatavam hoida teenused/kontrollerid selles moodulis, kus neid Nestjsis kõige sagedamini kasutatakse.
NestCLI-d kasutatakse enamasti moodulite tootmiseks ja CLI lisab automaatselt selle mooduli kontekstis loodud pakkujad/kontrollerid. Neid nimetatakse funktsioonimooduliteks.
5. Erandifiltrid
Erandifiltrid on veakäsitlejad, mis käivitatakse siis, kui kontroller teeb erandi. See haldab probleemi automaatselt ja edastab sobiva, kasutajasõbraliku veateate.
Paljusid HttpExceptioni päritud erandeid pakub pakett @nestjs/common, sealhulgas NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException ja paljud teised. Saate isegi kujundada oma erandifiltri.
6. Vahevara
Funktsiooni, mis käivitatakse enne marsruudihaldurit, nimetatakse vahevaraks. Taotluse ja vastuse objektid, samuti vahevara funktsioon next() rakenduse päringu-vastuse tsüklis on vahevara funktsioonidele juurdepääsetavad.
Muutujat nimega next kasutatakse tavaliselt järgmise vahevara funktsiooni tuvastamiseks. Kohandatud Nesti vahevara saab rakendada meetodis või klassis, kasutades dekoraatorit @Injectable().
7. Valvurid
Valvurid vastutavad ainult ühe asja eest. Nende ülesanne on hinnata, kas vastutav töötleja töötleb taotlust konkreetsete asjaolude põhjal (täpsemalt kasutaja määratud loogika).
See on kasulik autentimisel/volitamisel ja on Nestjsis soovitatav meetod.
Kuigi autentimist/lubasid jne saab teha vahevara abil, ei tehta seda ekspress- või muudes HTTP-serverites, kuna neil puudub sellega seotud tugev kontekst ja neil pole põhjust teada, millist meetodit päringu töötlemiseks kasutatakse.
Eelised
- Raamistik sõltub suuresti annotatsioonidest, mida kasutatakse lõpp-punktidest kuni Swaggeri dokumentatsioonini. Lõpp-punktid on lihtsad ja korralikud ning annotatsioonid muudavad arendamise üldiselt lihtsamaks.
- Üldotstarbelisi mooduleid on lihtne väljastada ja koodi paljudes projektides uuesti kasutada, kuna Nest.js on moodulipõhine raamistik.
- Nest.js'i kaustastruktuuri mõjutab oluliselt Angular. Nesti teenuse kavandamisel võimaldab see minimaalset seisakuaega.
- Komponentidel on oma kataloogid, mille juur sisaldab rakenduse moodulit ja põhifaili. Struktuuri lihtsuse tõttu saab rohkem tähelepanu pöörata lõpp-punktide ja nende klientide kujundamisele, mitte rakenduse struktuurile.
- Nest, nagu Angular, pakub kena käsurea tööriista Nestjs/cli, mis on saadaval Node Package Manageri kaudu.
Puudused
- Nestil on eelis TypeScripti kasutamise ja Angular-integratsiooni osas, kuid sellel puudub tohutu suurettevõtte rahaline toetus.
- Dokumentatsiooni puudumine kujutab Nesti kasutajatele suurimat ohtu. Kuigi raamistikul on suurepärane koostoime teiste raamistikega, on dokumentatsioon napp ega käsitle võimalikke raskusi.
- Nesti eeliseks on TypeScripti kasutamine ja Angular.
Järeldus
NestJS pakub arendajatele tohutut edu. Arengu alustamiseks pole vaja muud teha kui luua uus rakendus ja sul on hea minna. See raamistik annab kohe olulise tõuke, aidates samal ajal sobiva rakenduse arhitektuuri loomisega ka täiendavaid etappe läbida.
See kasutab hallatavate ja kauakestvate rakenduste tootmiseks tipptasemel meetodeid ja tehnoloogiat. Seda saab kasutada GraphQL-i, WebSocketsiga ühenduse loomiseks ja mikroteenuste loomiseks.
Jäta vastus