Mu 2021, JavaScript inali chilankhulo chogwiritsidwa ntchito kwambiri.
Kukopa kwaukadaulowu ndikosatsutsika, monga momwe zimawonera kuchuluka kwazinthu zomwe zimathandizira kupanga JavaScript.
Pali Angular, React, ndi Vue kutsogolo, komanso Express ndi Next kumbuyo, kutchula ochepa.
Ndili ndi machitidwe ambiri odabwitsa a mapulogalamu a backend mu JavaScript kupezeka, mwina mukuganiza kuti chifukwa chiyani ndingafufuze china chake osati kungogwiritsa ntchito Express kapena Next.
Mwina muyenera kulumpha njira yachitukuko mwachangu ndi boilerplate yabwino, ndikuwonjezera pamanja osati owongolera atsopano komanso ntchito zimakudwalitsani.
Kapena mukufuna kupanga mapulogalamu akuluakulu, osavuta kuwongolera. Kapena mumangofuna kuti muzigwira ntchito moyenera komanso momasuka.
Mosasamala kanthu kuti zili zotani muzochitika zanu, Nest.js ikhoza kukhala yankho labwino kwambiri pazosowa zanu.
Positi iyi ipereka zidziwitso za NestJS komanso zokuthandizani.
Kodi NestJS ndi chiyani?
NestJS ndi ndondomeko yopita patsogolo ya Node yomwe ili yotseguka, yowonjezereka, komanso yosinthika .Js ndondomeko yomanga, yogwira ntchito komanso yovuta kumbuyo. Tsopano ndi Node yokhala ndi chiwongolero chachangu kwambiri.
TypeScript chimango cha js. NestJS imagwiritsidwa ntchito kupanga mapulogalamu omwe ali ocheperako, oyesa, komanso olumikizidwa momasuka.
Imawonjezera scalability ku Node. Ma seva a Js atengedwa kupita kumalo atsopano. PostgreSQL, MongoDB, ndi MySQL ndi ena mwa nkhokwe zothandizidwa.
NestJS ndiyoonjezeka chifukwa itha kugwiritsidwa ntchito ndi malaibulale ena; yosinthika chifukwa cha chilengedwe chake chokhazikika. Ndipo ikupita patsogolo popeza imathandizira mawonekedwe a JavaScript ndi mfundo zamapangidwe.
Imakhudzidwa makamaka ndi Angular, React, ndi Vue ndipo imabwera ndi jakisoni wodalira womangidwa.
Mawonekedwe
- Ndiosavuta kugwiritsa ntchito, kuphunzira, komanso kuchita bwino.
- Ndi mfulu ndi gwero lotseguka (MIT chilolezo)
- Powerful Command Line Interface (CLI) kuti muwonjezere zokolola komanso chitukuko chosavuta
- Mapulogalamu oyesa mayunitsi omwe ndi osavuta kugwiritsa ntchito
- TypeScript, chilankhulo cholembedwa mwamphamvu chomwe chili chowonjezera cha JavaScript, chimagwiritsidwa ntchito.
- Kupanga ndi kukonza codebase yogwira.
- Thandizo la mazana a ma module okhudzana ndi chisa omwe amapangitsa kuti ikhale yosavuta kulumikizana ndi matekinoloje otchuka ndi malingaliro monga TypeORM, Mongoose, GraphQL, kudula mitengo, kutsimikizira, kusungitsa, WebSockets, ndi zina.
Kodi zomangira za NestJS ndi ziti?
Zomangamanga za Nest application zandandalikidwa pansipa; pali ena, koma atatu awa ndiwo ofunikira kwambiri. Tiyeni tiwone mwachangu.
1. Olamulira
Owongolera ndi omwe amayang'anira kukonza zopempha zomwe zikubwera ndikuyankha makasitomala. Imalandila zopempha zina za HTTP, ndipo kachitidwe kolowera kumatsimikizira kuti ndi wolamulira ati alandire pempho.
Kenako imalemba yankho loyenera kutumiza. Mothandizidwa ndi makalasi ndi okongoletsa, osonkhanitsa osavuta amamangidwa ndipo wolamulira aliyense ali ndi njira zake zochitira ntchito zosiyanasiyana.
2. Othandizira
Othandizira ndi lingaliro lofunikira mu Nest. Magulu ambiri a Nest - mautumiki, nkhokwe, mafakitale, othandizira, ndi zina zotero - atha kuthandizidwa ngati othandizira.
Lingaliro lofunikira la wothandizira ndiloti likhoza kubayidwa ngati kudalira; izi zikutanthawuza kuti zinthu zimatha kupanga mgwirizano wosiyanasiyana, ndipo ntchito ya "kulumikiza" zochitika za zinthu zitha kuperekedwa ku Nest runtime system.
3. Ma module
Ma module ndi kalasi yokhala ndi @Module() yokongoletsa yomwe imakonza magawo a pulogalamuyo. Pulogalamu iliyonse ili ndi gawo la mizu yomwe imagwiritsidwa ntchito popanga graph yogwiritsira ntchito, yomwe imathetsanso kudalira ndi kuyanjana pakati pa wopereka ndi module.
Wokongoletsayu amapereka metadata ku Nest.js kuti adziwe zigawo, zowongolera, kapena zinthu zina zomwe zidzagwiritsidwe ntchito pamakhodi ogwiritsira ntchito ndikuphatikiza kukhala gulu limodzi.
Module iliyonse ili ndi luso lapadera lomwe limalumikizidwa mwanjira ina.
Kuyamba ndi NestJS
1. Kuyika
Tiyeni tiyike NestJS ndikupanga pulojekiti nayo potsatira izi:
Dongosolo lotsatira lachikwatu lidzapangidwa chifukwa cha izi:
2. Olamulira
Zomangamanga za Nest ndi zowongolera. Awa ndi malo omwe zopempha zamkati zidzayankhidwa. Mutha kufotokozera njira yolowera pogwiritsa ntchito zosintha za HTTP (Pezani, Tumizani, Ikani, Chotsani, ndi zina zotero) zokongoletsa, monga momwe zikuwonekera m'chithunzichi pansipa.
Nestjs imagwiritsa ntchito njira yokongoletsera ndipo imapangidwa makamaka mu Typescript, ngakhale imathandizira JavaScript. Mukhozanso kugwiritsa ntchito kalasi yovomerezeka kuti mutsimikizire zopemphazo.
Ndipanga chitsanzo cha seva ya Nestjs ndikuwonjezera ValidationPipe padziko lonse lapansi. Mapaipi ndi njira chabe zomwe zimagwira pamaso pa Olamulira. Mipope ingagwiritsidwenso ntchito pamlingo wa njira / mkangano pogwiritsa ntchito @UsePipes wokongoletsa.
3. Othandizira
Othandizira ndi gawo lina lofunikira la Nestjs. Pofika pano, ndinali kusunga deta muzosintha zosakhalitsa. Ndicho chifukwa chake ntchito yosavuta yotereyi ikhoza kukwaniritsidwa pogwiritsa ntchito Controller handlers.
Komabe, pamalingaliro akulu, ovuta kwambiri, kulekanitsa ma code ndikugwiritsanso ntchito kungakhale kovuta. Apa ndipamene ogulitsa amabwera. Mutha kulengeza/kupanga wopereka chithandizo pamwamba pa kalasi pogwiritsa ntchito @Injectable decorator. Kenako, pogwiritsa ntchito othandizira, mutha kupanga jakisoni wodalira, kudula mitengo, ndi ntchito zina.
4. Ma module
Ma module a Nestjs sali apadziko lonse lapansi; m’malo mwake, ali ndi kuya.
Komabe, imatha kugawidwa ndi ma module ena aliwonse. Ngakhale kuti, monga Angular, imapereka Global Modules, ndibwino kwambiri kusunga Services/Controllers mu gawo lomwe amagwiritsidwa ntchito kwambiri mu Nestjs.
NestCLI imagwiritsidwa ntchito kupanga ma module nthawi zambiri, ndipo operekera/owongolera omwe amapangidwa mu gawoli amangowonjezeredwa ndi CLI. Izi zimadziwika ngati ma modules.
5. Zosefera Kupatulapo
Zosefera kupatulapo ndi zowongolera zolakwika zomwe zimapemphedwa ngati Controller achita zosiyana. Imawongolera nkhaniyo ndikupereka uthenga wolakwika, wosavuta kugwiritsa ntchito.
Zambiri za HttpException zotengera cholowa zimaperekedwa ndi phukusi @nestjs/common, kuphatikiza NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, ndi ena ambiri. Mutha kupanganso ExceptionFilter yanu.
6. Zapakati
Ntchito yomwe imayitanidwa pamaso pa chowongolera njira imatchedwa middleware. Zopempha ndi mayankho, komanso lotsatira () middleware ntchito muzopempha-mayankhidwe a pulogalamuyo, zitha kupezeka ku ntchito zapakati.
Chosinthika chotchedwa chotsatira chimagwiritsidwa ntchito kuzindikira ntchito yotsatira yapakati. Custom Nest middleware ikhoza kukhazikitsidwa m'njira kapena kalasi pogwiritsa ntchito @Injectable() zokongoletsera.
7. Alonda
Alonda ali ndi udindo pa chinthu chimodzi chokha. Ndi udindo wawo kuwunika ngati pempho lidzakonzedwa kapena ayi ndi wolamulira malinga ndi zochitika zinazake (Mwachindunji, malingaliro ofotokozedwa ndi ogwiritsa ntchito).
Ndiwothandiza pakutsimikizira/chilolezo ndipo ndi njira yovomerezeka mu Nestjs.
Ngakhale zilolezo / zilolezo, ndi zina, zitha kuchitidwa pogwiritsa ntchito middleware, sizimachitidwa momveka bwino kapena ma seva ena a HTTP popeza alibe mawu ogwirizana ndipo alibe chifukwa chodziwa njira yomwe idzagwiritsidwe ntchito poyankha pempholo.
ubwino
- Chimangocho chimadalira kwambiri zolemba, zomwe zimagwiritsidwa ntchito kupanga chilichonse kuchokera kumapeto mpaka zolemba za Swagger. Mapeto ake ndi ofunikira komanso mwadongosolo, ndipo mawu ake amapangitsa kuti chitukuko chikhale chosavuta.
- Ndizosavuta kutulutsa ma module ofunikira ndikugwiritsanso ntchito ma projekiti ambiri chifukwa Nest.js ndi gawo lotengera magawo.
- Kapangidwe ka foda ya Nest.js imakhudzidwa kwambiri ndi Angular. Mukamapanga ntchito ya Nest, izi zimalola kuti muchepetse nthawi yochepa.
- Zigawo zili ndi zolembera zawo, ndi muzu womwe uli ndi gawo la pulogalamu ndi fayilo yayikulu. Chifukwa cha kuphweka kwa kapangidwe kake, chidwi chochuluka chikhoza kuikidwa pa mapangidwe a mapeto ndi makasitomala awo m'malo mwa dongosolo la ntchito.
- Nest, monga Angular, imapereka chida chabwino cha mzere wamalamulo, Nestjs/cli, chomwe chimapezeka kudzera pa Node Package Manager.
kuipa
- Nest ili ndi mwayi wogwiritsa ntchito TypeScript komanso kuphatikiza kwa Angular, koma ilibe thandizo lazachuma la kampani yayikulu.
- Kusowa zolemba kumabweretsa chiwopsezo chachikulu kwa ogwiritsa ntchito Nest. Ngakhale kuti chimangochi chimakhala ndi machitidwe abwino kwambiri ndi machitidwe ena, zolembazo ndizochepa ndipo sizithetsa mavuto omwe angakhalepo.
- Nest ili ndi mwayi malinga ndi kugwiritsa ntchito TypeScript ndi Angular.
Kutsiliza
NestJS imapatsa omanga mwendo waukulu mmwamba. Kuti muyambe chitukuko, zonse zomwe muyenera kuchita ndi pangani pulogalamu yatsopano ndipo muli bwino kupita. Dongosololi limakupatsani chilimbikitso nthawi yomweyo, komanso kukuthandizani kuti muwonjezere magawo ena pakukhazikitsa mapulogalamu oyenera.
Zimagwiritsa ntchito njira zamakono komanso zamakono kuti apange mapulogalamu omwe amatha kutha komanso okhalitsa. Itha kugwiritsidwa ntchito kulumikiza ku GraphQL, WebSockets, ndikupanga ma microservices.
Siyani Mumakonda