Edukien aurkibidea[Ezkutatu][Erakutsi]
2021ean, JavaScript izan zen gehien erabiltzen den programazio-lengoaia.
Teknologia honen erakargarritasuna ukaezina da, JavaScript programazioa ahalbidetzen duten esparru ugariek ikusten dutenez.
Frontend-ean Angular, React eta Vue daude, baita atzeko aldean Express eta Next ere, batzuk aipatzearren.
JavaScript-en backend programaziorako hainbeste esparru zoragarri izanik, baliteke zergatik bilatuko nukeen zerbait ezberdina Express edo Next erabili beharrean.
Beharbada, garapen-prozesua azkar ekin behar diozu boilerplate duin batekin, eta eskuz kontrolagailu berriak ez ezik zerbitzuak ere gehitzeak gaixotu egiten zaitu.
Edo kudeatzeko erraza den software handi eta eskalagarria sortu nahi duzu. Edo agian modu eraginkor eta erosoago batean lan egin nahi duzu.
Zure egoeran egia dena edozein dela ere, Nest.js zure beharretarako irtenbide ezin hobea izan daiteke.
Argitalpen honek NestJS-i buruzko informazioa eta esperientzia praktikoa emango du.
Zer da NestJS?
NestJS Node marko progresiboa da, kode irekikoa, hedagarria eta moldagarria .Js backend sistemak eraikitzeko, erakargarriak eta erronkak egiteko esparrua. Orain hazkunde-tasa azkarrena duen Nodoa da.
Js-rako TypeScript markoa. NestJS eskalagarriak, probagarriak eta erraz konektatuta dauden aplikazioak sortzeko erabiltzen da.
Node-ri eskalagarritasuna gehitzen dio. Js zerbitzariak maila berri batera eraman dira. Onartutako datu-baseen artean PostgreSQL, MongoDB eta MySQL daude.
NestJS hedagarria da, beste liburutegiekin erabil daitekeelako; malgua bere ekosistema guztiz moldagarria delako. Eta progresiboa JavaScript ezaugarriak eta diseinu printzipioak onartzen dituelako.
Batez ere Angular, React eta Vue-k eragiten du eta mendekotasun-injekzio integratua dator.
Ezaugarriak
- Erabiltzeko, ikasteko eta menperatzeko erraza da.
- Doan da eta Kode irekiko (MIT lizentzia)
- Komando lerroko interfaze (CLI) indartsua produktibitatea areagotzeko eta garapenaren sinpletasuna lortzeko
- Erabiltzeko errazak diren unitate-probak egiteko programak
- TypeScript, JavaScript-en gain-multzoa den lengoaia zorrotza erabiltzen da.
- Kode-base aktibo baten garapena eta mantentzea.
- TypeORM, Mongoose, GraphQL, erregistroa, baliozkotzea, cachea, WebSockets eta abar bezalako teknologia eta ideia ezagunekin interfazea errazten duten habia espezifikoko ehunka moduluentzako laguntza.
Zeintzuk dira NestJS-en eraikuntza-blokeak?
Behean zerrendatzen dira Nest aplikazioen eraikuntza-osagaiak; badaude beste batzuk, baina hiru hauek dira esanguratsuenak. Ikus ditzagun azkar.
1. Kontrolagailu
Kontrolatzaileak sarrerako eskaerak prozesatzeaz eta bezeroei erantzuteaz arduratzen dira. HTTP eskaera jakinak jasotzen ditu, eta bideratze-sistemak zehazten du zein kontrolagailuk zein eskaera jasotzen duen.
Ondoren, bidaltzeko erantzun egoki bat idazten du. Klaseen eta dekoratzaileen laguntzaz, bildumagile soil bat eraikitzen da eta kontrolagailu bakoitzak bere ibilbide multzoa du hainbat zeregin egiteko.
2. Hornitzaileak
Hornitzaileak funtsezko ideia dira Nest-en. Oinarrizko Nest klase asko —zerbitzuak, biltegiak, lantegiak, laguntzaileak eta abar— hornitzaile gisa kudea daitezke.
Hornitzaile baten oinarrizko ideia mendekotasun gisa injektatu daitekeela da; horrek esan nahi du objektuek elkarren artean hainbat elkarte sor ditzaketela, eta objektuen instantzien "kableatzeko" eginkizuna Nest exekuzio-sistemara azpikontratatu daiteke nagusiki.
3. moduluak
Modulu bat @Module() dekoratzailea duen klase bat da, aplikazioaren egituraren osagaiak antolatzen dituena. Aplikazio bakoitzak root modulu bat du, aplikazio grafikoa eraikitzeko erabiltzen dena, hornitzailearen eta moduluaren arteko menpekotasunak eta elkarrekintzak gehiago konpontzen dituena.
Dekoratzaile honek metadatuak ematen dizkio Nest.js-i, aplikazio-kodean zein osagai, kontrolagailu edo bestelako baliabide erabiliko diren identifikatzeko eta multzo bakar batean konbinatzeko.
Modulu bakoitzak nolabait konektatuta dauden gaitasunen bilduma du.
NestJS-ekin hastea
1. instalazioa
Instalatu dezagun NestJS eta egin dezagun proiektu bat harekin urrats hauek jarraituz:
Honen ondorioz direktorio-egitura hau sortuko da:
2. Kontrolagailu
Nest-en eraikuntza-blokeak kontrolagailuak dira. Hauek dira sarrerako eskaerak kudeatuko diren kokapenak. Ibilbidearen bidea zehaztu dezakezu HTTP metodoaren aldagailuak erabiliz (Lortu, Argitaratu, Jarri, Ezabatu eta abar) dekoratzaileak, beheko kodean ikusten den moduan.
Nestjs-ek dekoratzaileen ikuspegia erabiltzen du eta gehienbat Typescript-en garatzen da, JavaScript ere onartzen duen arren. Klase balioztatzaile bat ere erabil dezakezu eskaeraren gorputza balioztatzeko.
Nestjs zerbitzariaren instantzia bat egingo dut eta ValidationPipe gehituko dut globalki. Hodiak Kontrolagailuen aurretik exekutatzen diren metodoak besterik ez dira. Tutuak metodo/argumentu mailan ere aplika daitezke @UsePipes dekoratzailea erabiliz.
3. Hornitzaileak
Hornitzaileak Nestjs-en beste osagai kritiko bat dira. Orain arte, datuak aldi baterako aldagai batean gordetzen ari nintzen. Hori dela eta, hain erraza den zeregina Controller kudeatzaileak erabiliz egin daiteke.
Hala ere, logika handiagoa eta konplikatuagoa izateko, zaila izango litzateke kodea bereiztea eta berrerabiltzea. Hau da hornitzaileak sartzen direnean. Hornitzaile bat deklaratu/sor dezakezu klase baten gainean @Injectable dekoratzailea erabiliz. Ondoren, hornitzaileak erabiliz, mendekotasun-injekzioa, erregistroa eta beste zeregin batzuk egin ditzakezu.
4. moduluak
Nestjs moduluak ez dira globalak; horren ordez, sakontasuna dute.
Hala ere, beste edozein modulurekin ere parteka daiteke. Nahiz eta, Angular bezala, Modulu Globalak eskaintzen dituen, komenigarria da Zerbitzuak/Kontroladoreak Nestjs-en gehien erabiltzen diren moduluan mantentzea.
NestCLI moduluak ekoizteko erabiltzen da gehienetan, eta modulu horren testuinguruan sortutako hornitzaileak/kontrolatzaileak automatikoki gehitzen ditu CLIak. Ezaugarri modulu gisa ezagutzen dira.
5. Salbuespen-iragazkiak
Salbuespen-iragazkiak Kontrolagailu batek salbuespen bat botatzen duenean deitzen diren errore-kudeatzaileak dira. Arazoa automatikoki kudeatzen du eta errore-mezu egokia eta erabilerraza ematen du.
Heredatutako HttpException Salbuespen asko @nestjs/common paketeak eskaintzen ditu, besteak beste, NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException eta beste hainbat. Zure ExceptionFilter ere diseina dezakezu.
6. Middlewarea
Bide-kudeatzailearen aurretik deitzen den funtzio bati middleware deitzen zaio. Eskaera- eta erantzun-objektuak, baita aplikazioaren eskaera-erantzun-zikloko next() middleware funtzioa ere, middleware funtzioetarako eskuragarri daude.
Next izeneko aldagaia normalean hurrengo middleware funtzioa identifikatzeko erabiltzen da. Nest middleware pertsonalizatua metodo edo klase batean inplementa daiteke @Injectable() dekoratzailea erabiliz.
7. Zaindariak
Zaindariak gauza bakarraren erantzule dira. Beraien ardura da kontrolatzaileak eskaera bat prozesatuko duen edo ez baloratzea egoera zehatzetan oinarrituta (Zehazki, erabiltzaileak definitutako logika).
Lagungarria da autentifikaziorako/baimenetarako eta Nestjs-en gomendatutako metodoa da.
Autentifikazioa/baimenak, etab., middleware-a erabiliz egin daitezkeen arren, ez da egiten express edo beste HTTP zerbitzarietan, ez baitute erlazionatutako testuinguru sendorik eta ez baitute eskaera prozesatzeko zein metodo erabiliko den jakiteko.
Abantailak
- Esparrua oharpenetan oinarritzen da, azken puntuetatik Swagger dokumentaziora arte edozer ekoizteko erabiltzen direnak. Amaiera-puntuak oinarrizkoak eta txukunak dira, eta oharpenek garapena errazten dute orokorrean.
- Erraza da helburu orokorreko moduluak kanporatzea eta kodea berrerabiltzea proiektu askotan, Nest.js moduluetan oinarritutako markoa baita.
- Nest.js-en karpeta-egiturak nabarmen eragiten du Angular-ek. Nest zerbitzu bat diseinatzean, horrek gutxieneko geldialdi-denbora ahalbidetzen du.
- Osagaiek beren direktorio propioak dituzte, erroak aplikazioaren modulua eta fitxategi nagusia dituena. Egituraren sinpletasuna dela eta, arreta gehiago jarri ahal izango zaio amaierako puntuen eta haien bezeroen diseinuari, aplikazioaren egiturari baino.
- Nest-ek, Angular bezala, komando lerroko tresna polita eskaintzen du, Nestjs/cli, Node Package Manager bidez eskuragarri dagoena.
Desabantailak
- Nest-ek abantaila bat du TypeScript erabilerari eta Angular integrazioari dagokionez, baina ez du korporazio handi baten finantza-laguntzarik.
- Dokumentazio faltak mehatxu handiena da Nest-eko erabiltzaileentzat. Markoak beste esparru batzuekin elkarrekintza bikainak dituen arren, dokumentazioa urria da eta ez du balizko zailtasunik zuzentzen.
- Nest-ek abantaila bat du TypeScript erabilerari eta Angularri dagokionez.
Ondorioa
NestJS-k garapen handia eskaintzen die garatzaileei. Garapena hasteko, egin behar duzun guztia da sortu aplikazio berri bat eta ona zara joateko. Esparru honek bultzada nabarmena ematen du berehala, eta, aldi berean, etapa osagarriak egiten laguntzen dizu aplikazioen arkitektura egoki bat ezarriz.
Puntako metodoak eta teknologiak erabiltzen ditu kudeagarriak eta iraunkorrak diren aplikazioak sortzeko. GraphQL, WebSockets eta mikrozerbitzuak eraikitzeko erabil daiteke.
Utzi erantzun bat