En 2021, JavaScript estis la plej vaste uzata programlingvo.
La allogo de ĉi tiu teknologio estas nekontestebla, kiel vidas la vasta nombro da kadroj kiuj ebligas JavaScript-programadon.
Estas Angular, React kaj Vue sur la fasado, same kiel Express kaj Next sur la backend, por mencii kelkajn.
Kun tiom da mirindaj kadroj por backend programado en JavaScript alirebla, vi eble pensas, kial mi serĉus ion alian prefere ol simple uzi Express aŭ Next.
Eble vi devas rapide ekfunkciigi la disvolvan procezon per deca kaldrono, kaj permane aldoni ne nur novajn regilojn sed ankaŭ servojn malsanigas vin.
Aŭ vi volas krei grandan, skaleblan programaron, kiu estas simple administrebla. Aŭ eble vi simple deziras labori en pli efika kaj oportuna maniero.
Sendepende de tio, kio estas vera en via cirkonstanco, Nest.js povas esti la perfekta solvo por viaj bezonoj.
Ĉi tiu afiŝo provizos NestJS-komprenojn kaj ankaŭ praktikan sperton.
Kio estas NestJS?
NestJS estas progresema Noda kadro, kiu estas malfermfonta, disetendebla kaj adaptebla .Js kadro por konstrui, engaĝi kaj defii backend sistemoj. Ĝi nun estas la Nodo kun la plej rapida kreskorapideco.
TypeScript kadro por js. NestJS estas uzata por krei aplikaĵojn, kiuj estas skaleblaj, testeblaj kaj loze ligitaj.
Ĝi aldonas skaleblon al Nodo. Js-serviloj estis prenitaj al tute nova nivelo. PostgreSQL, MongoDB kaj MySQL estas inter la datumbazoj subtenataj.
NestJS estas etendebla ĉar ĝi povas esti uzata kun aliaj bibliotekoj; fleksebla pro sia adaptebla plenkreska ekosistemo. Kaj progresema ĉar ĝi subtenas JavaScript-funkciojn kaj dezajnoprincipojn.
Ĝi estas ĉefe influita de Angular, React kaj Vue kaj venas kun enkonstruita dependeca injekto.
Trajtoj
- Ĝi estas simple uzi, lerni kaj majstri.
- Ĝi estas senpaga kaj malfermfonto (licenco MIT)
- Potenca Komandlinia Interfaco (CLI) por pliigita produktiveco kaj disvolva simpleco
- Unu-testaj programoj, kiuj estas simplaj uzeblaj
- TypeScript, strikte tajpita lingvo kiu estas superaro de JavaScript, estas uzata.
- Evoluo kaj prizorgado de aktiva kodbazo.
- Subteno por centoj da nestospecifaj moduloj, kiuj faciligas interfacon kun popularaj teknologioj kaj ideoj kiel TypeORM, Mongoose, GraphQL, protokolado, validumado, kaŝmemoro, WebSockets kaj pli.
Kio estas la konstrubriketoj de NestJS?
La konstrukomponentoj de Nest-aplikoj estas listigitaj malsupre; estas aliaj, sed ĉi tiuj tri estas la plej signifaj. Ni rigardu ilin rapide.
1. Regiloj
Regiloj respondecas pri prilaborado de envenantaj petoj kaj respondado al klientoj. Ĝi ricevas apartajn HTTP-petojn, kaj la envojiga sistemo determinas, kiu regilo ricevas kiun peton.
Ĝi tiam redaktas taŭgan respondon por sendi. Kun la helpo de klasoj kaj dekoraciistoj, simpla kolektanto estas konstruita kaj ĉiu regilo havas sian propran aron de itineroj por fari diversajn taskojn.
2. Provizantoj
Provizantoj estas ŝlosila ideo en Nest. Multaj el la kernaj Nest-klasoj - servoj, deponejoj, fabrikoj, helpantoj, ktp - povas esti pritraktitaj kiel provizantoj.
La baza nocio de provizanto estas ke ĝi povas esti injektita kiel dependeco; tio implicas ke objektoj povas formi diversajn asociojn unu kun la alia, kaj la rolo de "kablado supren" kazoj de objektoj povas esti plejparte subkontraktita al la Nest rultempa sistemo.
3. Moduloj
Modulo estas klaso kun la dekoraciisto @Module() kiu organizas la komponantojn de la strukturo de la aplikaĵo. Ĉiu aplikaĵo havas radikan modulon kiu estas utiligita por konstrui la aplikaĵografeon, kiu plu solvas la dependecojn kaj interagojn inter la provizanto kaj la modulo.
Ĉi tiu dekoraciisto donas metadatenojn al Nest.js por identigi kiuj komponantoj, regiloj aŭ aliaj rimedoj estos uzataj en la aplika kodo kaj kombini ilin en ununuran aron.
Ĉiu modulo havas kolekton de kapabloj kiuj estas iel konektitaj.
Komencu kun NestJS
1. instalado
Ni instalu NestJS kaj faru projekton kun ĝi sekvante ĉi tiujn paŝojn:
La sekva dosierujo-strukturo estos kreita kiel rezulto de ĉi tio:
2. Regiloj
La konstrubriketoj de la Nesto estas regiloj. Ĉi tiuj estas la lokoj kie envenantaj petoj estos traktitaj. Vi povas specifi la itineron per HTTP-metoda modifiloj (Akiri, Afiŝi, Meti, Forigi, ktp) dekoraciistoj, kiel vidite en la kodo sube.
Nestjs utiligas la dekoracian aliron kaj estas plejparte evoluigita en Typescript, kvankam ĝi ankaŭ subtenas JavaScript. Vi ankaŭ povas uzi klasvalidilon por validigi la petan korpon.
Mi nur faros Nestjs-servilan petskribon kaj aldonos ValidationPipe tutmonde. Pipoj estas nur metodoj, kiuj efektiviĝas antaŭ Regiloj. Pipoj ankaŭ povas esti aplikataj ĉe la metodo/argumenta nivelo uzante la dekoraciiston @UsePipes.
3. Provizantoj
Provizantoj estas alia kritika komponanto de Nestjs. Malproksime, mi konservis datumojn en provizora variablo. Tial tia simpla tasko povas esti plenumita per Controller-traktiloj.
Tamen, por pli granda, pli komplika logiko, koda apartigo kaj reuzo estus malfacilaj. Ĉi tie venas provizantoj. Vi povas deklari/krei provizanton super klaso uzante la dekoraciiston @Injectable. Tiam, uzante provizantoj, vi povas fari dependecan injekton, registrantajn kaj aliajn taskojn.
4. Moduloj
Nestjs-moduloj ne estas tutmondaj; anstataŭe, ili havas profundon.
Tamen, ĝi povas esti dividita kun iuj aliaj moduloj ankaŭ. Kvankam ĝi, kiel Angular, ofertas Tutmondajn Modulojn, estas pli konsilinde konservi Servojn/Regilojn en la modulo, kie ili estas plej ofte uzataj en Nestjs.
La NestCLI kutimas produkti modulojn plejofte, kaj provizantoj/regiloj generitaj en la kunteksto de tiu modulo estas aŭtomate aldonitaj de la CLI. Ĉi tiuj estas konataj kiel trajtomoduloj.
5. Esceptaj Filtriloj
Esceptaj filtriloj estas erartraktiloj kiuj estas alvokitaj kiam Regilo ĵetas escepton. Ĝi aŭtomate administras la aferon kaj liveras taŭgan, uzant-amikan erarmesaĝon.
Multaj HttpException hereditaj Esceptoj estas provizitaj de la pakaĵo @nestjs/common, inkluzive de NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException kaj multaj aliaj. Vi eĉ povas desegni vian propran ExceptionFilter.
6. Mezvaro
Funkcio kiu estas alvokita antaŭ la itinertraktilo estas nomita mezvaro. La peto- kaj respondobjektoj, same kiel la sekva () mezvaraĵfunkcio en la peto-responda ciklo de la aplikiĝo, estas alireblaj al mezvaraj funkcioj.
Variablo nomita sekva estas tipe uzita por identigi la venontan mezvaran funkcion. Propra Nest mezvaro povas esti efektivigita en metodo aŭ klaso uzante la @Injectable () dekoraciisto.
7. Gardistoj
Gardistoj respondecas nur pri unu afero. Estas ilia respondeco taksi ĉu aŭ ne peto estos procesita de la regilo surbaze de specifaj cirkonstancoj (Specife, uzant-difinita logiko).
Ĝi estas helpema por aŭtentigo/rajtigo kaj estas la rekomendinda metodo en Nestjs.
Kvankam aŭtentigo/permesoj, ktp., povas esti faritaj per mezvaro, ĝi ne estas farita en ekspresaj aŭ aliaj HTTP-serviloj ĉar ili ne havas rilatan fortan kuntekston kaj havas neniun kialon scii kiu metodo estos uzata por prilabori la peton.
Avantaĝoj
- La kadro tre dependas de komentarioj, kiuj estas uzataj por produkti ion ajn de finpunktoj ĝis Swagger-dokumentado. La finpunktoj estas bazaj kaj bonordaj, kaj la komentarioj ĝenerale faciligas disvolviĝon.
- Estas simple eksterigi ĝeneraluzeblajn modulojn kaj reuzi kodon en multaj projektoj ĉar Nest.js estas modul-bazita kadro.
- La dosierujo de Nest.js estas signife influita de Angular. Dum desegnado de Nest-servo, tio permesas minimuman malfunkcion.
- Komponantoj havas siajn proprajn dosierujojn, kun la radiko enhavas la aplikaĵmodulon kaj ĉefan dosieron. Pro la simpleco de la strukturo, pli da atento povas esti metita al la dezajno de finpunktoj kaj iliaj klientoj prefere ol la strukturo de la aplikaĵo.
- Nest, kiel Angular, ofertas belan komandlinian ilon, Nestjs/cli, kiu disponeblas per Node Package Manager.
malavantaĝoj
- Nesto havas avantaĝon rilate al TypeScript-uzo kaj Angula integriĝo, sed al ĝi mankas la financa subteno de grandega korporacio.
- La manko de dokumentado prezentas la plej grandan minacon al Nest-uzantoj. Kvankam la kadro havas bonegajn interagojn kun aliaj kadroj, la dokumentaro estas malabunda kaj ne traktas eventualajn malfacilaĵojn.
- Nesto havas avantaĝon laŭ TypeScript-uzo kaj Angular.
konkludo
NestJS provizas programistojn kun grandega kruro. Por komenci disvolviĝon, vi nur bezonas fari krei novan apon kaj vi estas bona iri. Ĉi tiu kadro donas signifan akcelon tuj, kaj ankaŭ helpas vin fari pliajn etapojn establante taŭgan aplikan arkitekturon.
Ĝi uzas avangardajn metodojn kaj teknologion por produkti aplikojn, kiuj estas kaj regeblaj kaj longdaŭraj. Ĝi povas esti uzata por konekti al GraphQL, WebSockets kaj konstrui mikroservojn.
Lasi Respondon