Di sala 2021-an de, JavaScript zimanê bernamekirinê yê herî pir tê bikar anîn bû.
Banga vê teknolojiyê nayê înkar kirin, wekî ku ji hêla hejmarek mezin a çarçoveyên ku bernamekirina JavaScript-ê çalak dike ve tê dîtin.
Li pêşiyê Angular, React, û Vue hene, û her weha li ser piştê Express û Next hene, ku çendan behs bikin.
Digel gelek çarçoveyên ecêb ên ji bo bernamesaziya paşerojê ya di JavaScript-ê de gihîştî, dibe ku hûn difikirin ka çima ez ê li tiştek cûda bigerim ji bilî karanîna Express an Next.
Dibe ku hûn hewce ne ku hûn pêvajoya pêşkeftinê zû bi kazanek maqûl dest pê bikin, û bi destan ne tenê kontrolkerên nû lê di heman demê de karûbar jî we nexweş dike.
An jî hûn dixwazin nermalava mezin, berbelav ku ji bo birêvebirinê hêsan e biafirînin. An jî dibe ku hûn tenê dixwazin ku bi rengek bikêrtir û hêsantir bixebitin.
Tevî ku di rewşa we de rast e, Nest.js dikare ji bo hewcedariyên we çareseriyek bêkêmasî be.
Ev post dê têgihîştina NestJS û hem jî ezmûna desta peyda bike.
NestJS çi ye?
NestJS çarçoveyek Node-ya pêşkeftî ye ku çavkaniyek vekirî, berbelav û adapteyî ye .Js çarçoveyek ji bo pergalên paşîn ên avakirin, tevlêbûn û dijwar. Naha ew Node bi rêjeya mezinbûna zûtirîn e.
Çarçoveya TypeScript ji bo js. NestJS ji bo afirandina serîlêdanên ku berbelav, ceribandin, û bi hûrgulî ve girêdayî ne tê bikar anîn.
Ew scalability li Node zêde dike. Pêşkêşkerên Js gihîştine astek nû. PostgreSQL, MongoDB, û MySQL di nav databasên piştgirî de ne.
NestJS berfirehtir e ji ber ku ew dikare bi pirtûkxaneyên din re were bikar anîn; maqûl e ji ber ekosîstema xwe ya bi tevahî-hêja adapteyî. Û pêşverû ji ber ku ew taybetmendiyên JavaScript û prensîbên sêwiranê piştgirî dike.
Ew di serî de ji hêla Angular, React, û Vue ve tê bandor kirin û bi derzîlêdana pêwendiya çêkirî tê.
Features
- Bikaranîn, fêrbûn û serweriyê hêsan e.
- Ew belaş e û vekirî (lîsansa MIT)
- Têkiliya Hêza Fermandariyê (CLI) ji bo zêdekirina hilberandin û hêsanbûna pêşkeftinê
- Bernameyên ceribandina yekîneyê yên ku karanîna wan hêsan in
- TypeScript, zimanek hişk hatî nivîsandin ku supersetek JavaScript-ê ye, tê bikar anîn.
- Pêşveçûn û domandina bingehek kodek çalak.
- Piştgiriya bi sedan modulên hêlînê-taybet ên ku pêwendiya bi teknolojiyên populer û ramanên mîna TypeORM, Mongoose, GraphQL, têketin, pejirandin, caching, WebSockets, û hêj bêtir hêsan dike.
blokên avakirina NestJS çi ne?
Parçeyên avahiyê yên serîlêdanên Nest li jêr têne navnîş kirin; yên din jî hene, lê ev sê yên herî girîng in. Ka em bi lez li wan binêrin.
1. Controllers
Kontrolker berpirsiyar in ku daxwazên dahatûyê bişopînin û bersivê bidin xerîdaran. Ew daxwazên taybetî yên HTTP distîne, û pergala rêvekirinê diyar dike ku kîjan kontrolker kîjan daxwazê digire.
Dûv re ew bersivek guncan amade dike ku bişîne. Bi alîkariya çîn û xemilandan, kolektîfek hêsan tê çêkirin û her kontrolker ji bo kirina karên cihêreng rêgezên xwe hene.
2. Pêşkêşker
Pêşkêşker di Nest de ramanek sereke ne. Gelek dersên bingehîn ên Nest - karûbar, depo, kargeh, arîkar, û hwd - dikarin wekî pêşkêşker werin hilgirtin.
Têgîna bingehîn a pêşkêşkerek ev e ku ew dikare wekî pêwendiyek were derzî kirin; ev tê vê wateyê ku tişt dikarin bi hevûdu re komeleyên cihêreng ava bikin, û rola "têlkirina" mînakên tiştan bi giranî dikare ji pergala xebitandina Nest re were veqetandin.
3. Modul
Modulek bi xemilandina @Module() çînek e ku pêkhateyên strukturên serîlêdanê organîze dike. Her serîlêdan modulek root heye ku ji bo avakirina grafika serîlêdanê tête bikar anîn, ku bêtir girêdayî û danûstendinên di navbera pêşkêşker û modulê de çareser dike.
Ev decorator metadata dide Nest.js da ku nas bike ka kîjan pêkhate, kontrolker, an çavkaniyên din dê di koda serîlêdanê de werin bikar anîn û wan di nav komek yekane de berhev bike.
Her modul xwedan berhevokek kapasîteyên ku bi rengek ve girêdayî ne hene.
Bi NestJS re dest pê kirin
1. Lêkirinî
Werin em NestJS saz bikin û bi şopandina van gavan pê re projeyek çêbikin:
Struktura pelrêça jêrîn dê di encama vê yekê de were afirandin:
2. Controllers
Avahiyên Nest-ê kontrolker in. Ev cîhên ku dê daxwazên hundurîn bêne girtin. Hûn dikarin riya rêgezê bi karanîna guhêrbarên rêbaza HTTP-ê (Get, Post, Pût, Jêbirin, û hwd) decoratoran diyar bikin, wekî ku di koda jêrîn de tê dîtin.
Nestjs nêzîkatiya decoratorê bikar tîne û bi piranî di Typescript de pêşkeftî ye, her çend ew JavaScript-ê jî piştgirî dike. Her weha hûn dikarin erêkerek polê bikar bînin da ku laşê daxwaznameyê rast bikin.
Ez ê tenê mînakek servera Nestjs çêkim û ValidationPipe li seranserê cîhanê lê zêde bikim. Borî tenê rêbazên ku li ber Kontrolkeran têne darve kirin in. Di heman demê de lûle dikarin di asta rêbaz/arguman de jî bi karanîna dekoratorê @UsePipes werin sepandin.
3. Pêşkêşker
Pêşkêşker hêmanek din a girîng a Nestjs ne. Heya nuha, min daneyan di guhêrbarek demkî de hilanî. Ji ber vê yekê karekî wusa hêsan dikare bi karanîna rêkarên Controller pêk were.
Lêbelê, ji bo mantiqa mezintir, tevlihevtir, veqetandina kodê û ji nû ve karanîna wê dijwar be. Ev gava ku peydaker tê de ye. Hûn dikarin bi karanîna decoratorê @Injectable pêşkêşvanek li ser çînek ragihînin/afirînin. Dûv re, bi karanîna pêşkêşvanan, hûn dikarin derzîlêdana girêdanê, têketin û karên din bikin.
4. Modul
Modulên Nestjs ne gerdûnî ne; li şûna wan, kûrahiya wan heye.
Lêbelê, ew dikare bi modulên din re jî were parve kirin. Her çend ew, mîna Angular, Modulên Gerdûnî pêşkêşî dike, şîrettir e ku hûn Karûbar / Kontrolker di modulê de ku ew bi gelemperî di Nestjs de têne bikar anîn de bimînin.
NestCLI ji bo hilberîna modulan pir caran tê bikar anîn, û pêşkêşker/kontrolkerên ku di çarçoweya wê modulê de têne hilberandin bixweber ji hêla CLI ve têne zêdekirin. Ev wekî modulên taybetmendiyê têne zanîn.
5. Parzûnên Exception
Parzûnên îstîsna rêkarên xeletiyê ne ku dema ku Kontrolker îstîsnayek derdixe têne gazî kirin. Ew bixweber pirsgirêkê birêve dibe û peyamek xeletiyek guncan, bikarhêner-heval peyda dike.
Gelek Îstîsnayên mîraskirî yên HttpException ji hêla pakêtê @nestjs/common ve têne peyda kirin, di nav de NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, û gelekên din. Tewra hûn dikarin ExceptionFilter-a xweya xwe dîzayn bikin.
6. Naverast
Fonksiyonek ku beriya rêgezê rêgezê tê gazî kirin jê re navgîniya navgîn tê gotin. Tiştên daxwaz û bersivê, û hem jî fonksiyona navîn () ya din a di çerxa daxwaz-bersiva serîlêdanê de, ji fonksiyonên navgîniyê re têne gihîştin.
Guherînek ku jê re tê gotin next bi gelemperî tê bikar anîn da ku fonksiyona navîn ya paşîn nas bike. Naveroka Nest ya Xweser dikare di rêbazek an polê de bi karanîna dekoratorê @Injectable() ve were bicîh kirin.
7. Gardiyan
Cerdevan tenê ji tiştekî berpirsiyar in. Berpirsiyariya wan e ku binirxînin ka dê daxwazek ji hêla kontrolker ve li ser bingeha rewşên taybetî were pêvajo kirin an na (Bi taybetî, mantiqa ku ji hêla bikarhêner ve hatî destnîşankirin).
Ew ji bo rastkirin / destûrnameyê arîkar e û di Nestjs de rêbaza pêşniyarkirî ye.
Her çend pejirandin / destûr, hwd., dikare bi karanîna navgîniya navîn were kirin, ew di pêşkêşkerên HTTP-ê yên ekspres an yên din de nayê kirin ji ber ku ew xwedan çarçoveyek bihêz a têkildar nînin û sedemek wan tune ku zanibin ka kîjan rêbaz dê were bikar anîn da ku daxwazê bişopîne.
Feyda
- Çarçove bi giranî bi şîroveyan ve girêdayî ye, ku ji bo hilberîna tiştek ji xalên dawî bigire heya belgeyên Swagger têne bikar anîn. Xalên dawîn bingehîn û birêkûpêk in, û şîrovekirin bi gelemperî pêşkeftinê hêsantir dike.
- Sade ye ku meriv modulên-armanca gelemperî ji derve derxîne û kodê ji nû ve bikar bîne di gelek projeyan de ji ber ku Nest.js çarçoveyek-based module ye.
- Struktura peldanka Nest.js bi girîngî ji hêla Angular ve tê bandor kirin. Dema ku hûn karûbarek Nest-ê sêwiran dikin, ev yek rê dide dema kêmbûna domandinê.
- Pêkhatan pelrêçên xwe hene, digel koka modula serîlêdanê û pelê sereke. Ji ber sadebûna strukturê, ji strukturên serîlêdanê bêtir bala meriv dikare were sêwirana xalên dawî û xerîdarên wan.
- Nest, mîna Angular, amûrek rêza fermanê ya xweş, Nestjs/cli, ku bi Rêvebirê Pakêta Node-yê ve peyda dibe, pêşkêşî dike.
dezawantajên
- Nest di warê karanîna TypeScript û entegrasyona Angular de xwedan avantajek e, lê ew piştgirîya darayî ya pargîdaniyek mezin tune.
- Kêmbûna belgeyan xetereya herî mezin ji bikarhênerên Nest re çêdike. Her çend çarçove bi çarçoweyên din re têkiliyek hêja heye, lêbelge kêm e û ti dijwariyên potansiyel nagire.
- Nest di warê karanîna TypeScript û Angular de xwedan avantajek e.
Xelasî
NestJS ji pêşdebiran re lingek mezin peyda dike. Ji bo destpêkirina pêşveçûnê, ya ku hûn hewce ne bikin ev e sepaneke nû biafirîne û hûn baş in ku biçin. Ev çarçove yekser hêzek girîng peyda dike, di heman demê de ji we re dibe alîkar ku hûn qonaxên din jî bi sazkirina mîmariya sepanê ya guncan bavêjin.
Ew rêbaz û teknolojiyên pêşkeftî bikar tîne da ku serîlêdanên ku hem rêvebirin û hem jî dirêj-mayînde ne hilberîne. Ew dikare ji bo girêdana bi GraphQL, WebSockets, û avakirina mîkroservisan were bikar anîn.
Leave a Reply