Xyoo 2021, JavaScript yog hom lus siv dav tshaj plaws.
Qhov kev thov rov hais dua ntawm cov thev naus laus zis no tsis tuaj yeem tsis lees paub, raws li pom los ntawm ntau lub hauv paus ua haujlwm uas ua rau JavaScript programming.
Muaj Angular, React, thiab Vue nyob rau pem hauv ntej, nrog rau Express thiab Next ntawm lub backend, hais ob peb.
Nrog rau ntau lub tswv yim zoo rau backend programming hauv JavaScript nkag tau, tej zaum koj yuav xav tias vim li cas kuv thiaj li tshawb nrhiav qee yam txawv dua li tsuas yog siv Express lossis Next.
Tej zaum koj yuav tsum dhia pib txoj kev loj hlob sai nrog lub boilerplate dlej, thiab manually ntxiv tsis tau tsuas yog tshiab controllers tab sis kuj cov kev pab cuam ua rau koj mob.
Los yog koj xav tsim loj, scalable software uas yooj yim los tswj. Los yog tej zaum koj tsuas xav ua haujlwm kom zoo dua thiab yooj yim dua.
Txawm hais tias qhov twg yog qhov tseeb hauv koj qhov xwm txheej, Nest.js tuaj yeem yog qhov kev daws teeb meem zoo tshaj plaws rau koj cov kev xav tau.
Cov ntawv tshaj tawm no yuav muab NestJS kev nkag siab nrog rau kev siv tes ua haujlwm.
NestJS yog dab tsi?
NestJS yog ib qho kev nce qib Node moj khaum uas yog qhib-qhov chaw, nthuav dav, thiab hloov tau .Js lub hauv paus rau kev tsim, koom nrog thiab nyuaj backend systems. Tam sim no nws yog Node nrog kev loj hlob sai tshaj plaws.
TypeScript lub moj khaum rau js. NestJS yog siv los tsim cov ntawv thov uas tuaj yeem ntsuas tau, ntsuas tau, thiab txuas nrog xoob.
Nws ntxiv scalability rau Node. Js servers tau raug coj mus rau qib tshiab tag nrho. PostgreSQL, MongoDB, thiab MySQL yog cov databases txhawb nqa.
NestJS yog txuas ntxiv vim nws tuaj yeem siv nrog lwm lub tsev qiv ntawv; hloov tau vim nws adaptable tag nrho-fledged ecosystem. Thiab vam meej vim nws txhawb JavaScript nta thiab tsim qauv.
Nws yog feem ntau cuam tshuam los ntawm Angular, React, thiab Vue thiab tuaj nrog kev txhaj tshuaj ua ke.
nta
- Nws yooj yim rau siv, kawm, thiab tus tswv.
- Nws yog dawb thiab Qhib qhov chaw (MIT daim ntawv tso cai)
- Powerful Command Line Interface (CLI) kom muaj txiaj ntsig thiab txhim kho yooj yim
- Unit-testing programs uas yooj yim siv
- TypeScript, ib hom lus nruj heev uas yog superset ntawm JavaScript, yog siv.
- Kev loj hlob thiab kev saib xyuas ntawm lub active codebase.
- Kev them nyiaj yug rau ntau pua lub zes tshwj xeeb modules uas ua rau nws yooj yim rau kev sib txuas nrog cov thev naus laus zis thiab cov tswv yim zoo li TypeORM, Mongoose, GraphQL, kev txiav, kev siv tau, caching, WebSockets, thiab ntau dua.
Lub tsev thaiv ntawm NestJS yog dab tsi?
Cov khoom siv hauv tsev ntawm Nest daim ntawv thov muaj npe hauv qab no; muaj lwm tus, tab sis peb qhov no yog qhov tseem ceeb tshaj plaws. Cia wb mus saib lawv sai sai.
1. Cov tswj
Cov tswj hwm yog tus saib xyuas kev ua cov lus thov tuaj thiab teb rau cov neeg siv khoom. Nws tau txais kev thov HTTP tshwj xeeb, thiab cov kab ke kev txiav txim siab tus tswj tau txais qhov kev thov twg.
Nws mam li sau cov lus teb tsim nyog xa tawm. Nrog kev pab los ntawm cov chav kawm thiab cov kws kho kom zoo nkauj, ib qho yooj yim sau tau tsim thiab txhua tus tswj hwm nws muaj nws txoj hauv kev los ua ntau yam dej num.
2. Cov neeg muab kev pab
Cov kws kho mob yog lub tswv yim tseem ceeb hauv Nest. Ntau chav kawm Nest tseem ceeb - cov kev pabcuam, chaw cia khoom, chaw tsim khoom, cov neeg pabcuam, thiab lwm yam - tuaj yeem ua haujlwm raws li cov neeg muab kev pabcuam.
Tus kws kho mob lub tswv yim tseem ceeb yog tias nws tuaj yeem raug txhaj tshuaj raws li kev vam khom; qhov no txhais tau hais tias cov khoom tuaj yeem tsim ntau yam kev koom tes nrog ib leeg, thiab lub luag haujlwm ntawm "txhim kho" piv txwv ntawm cov khoom tuaj yeem raug xa tawm mus rau Nest runtime system.
3. Modules
Ib qho module yog ib chav kawm nrog @Module() decorator uas npaj cov khoom ntawm daim ntawv thov cov qauv. Txhua daim ntawv thov muaj lub hauv paus module uas yog siv los tsim daim ntawv thov daim duab, uas ntxiv daws qhov kev vam khom thiab kev cuam tshuam ntawm tus muab kev pabcuam thiab cov module.
Tus kho kom zoo nkauj no muab cov metadata rau Nest.js txhawm rau txheeb xyuas cov khoom siv, cov tswj hwm, lossis lwm yam kev pabcuam yuav raug siv hauv daim ntawv thov code thiab muab lawv tso rau hauv ib txheej.
Txhua lub module muaj ib qho kev sau ntawm cov peev txheej uas txuas nrog qee txoj hauv kev.
Pib nrog NestJS
1. installation
Cia peb nruab NestJS thiab ua ib qhov project nrog nws los ntawm kev ua raws li cov kauj ruam no:
Cov qauv hauv qab no yuav raug tsim los ntawm qhov no:
2. Cov tswj
Lub Nest lub tsev thaiv yog cov tswj. Cov no yog cov chaw uas cov kev thov inbound yuav raug daws. Koj tuaj yeem hais qhia txoj hauv kev uas siv HTTP txoj kev hloov kho (Tau, Tshaj Tawm, Tso, Rho tawm, thiab lwm yam) cov neeg kho kom zoo nkauj, raws li pom hauv cov cai hauv qab no.
Nestjs ntiav cov kws kho kom zoo nkauj thiab feem ntau tsim hauv Typescript, txawm hais tias nws kuj txhawb JavaScript. Koj tseem tuaj yeem siv tus validator hauv chav kawm los ua kom lub cev thov.
Kuv tsuas yog yuav ua tus piv txwv Nestjs server thiab ntxiv ValidationPipe thoob ntiaj teb. Cov kav dej tsuas yog txoj hauv kev ua haujlwm ua ntej Controllers. Cov kav dej kuj tuaj yeem siv rau ntawm txoj kev / kev sib cav theem siv @UsePipes decorator.
3. Cov neeg muab kev pab
Cov kws kho mob yog lwm qhov tseem ceeb ntawm Nestjs. Txog tam sim no, kuv tau khaws cov ntaub ntawv hauv qhov hloov pauv ib ntus. Tias yog vim li cas xws li ib tug yooj yim txoj hauj lwm yuav ua tau tiav siv Controller handlers.
Txawm li cas los xij, rau qhov loj dua, qhov nyuaj ntau dua, kev sib cais code thiab rov siv dua yuav nyuaj. Qhov no yog thaum cov neeg xa khoom tuaj rau hauv. Koj tuaj yeem tshaj tawm / tsim ib tus kws kho mob rau saum cov chav kawm los ntawm kev siv @Injectable decorator. Tom qab ntawd, siv cov chaw muab kev pabcuam, koj tuaj yeem ua qhov kev vam khom, txiav, thiab lwm yam haujlwm.
4. Modules
Nestjs modules tsis yog thoob ntiaj teb; hloov, lawv muaj qhov tob.
Txawm li cas los xij, nws tuaj yeem sib koom nrog lwm cov modules thiab. Txawm hais tias nws, zoo li Angular, muaj Cov Modules Ntiaj Teb, nws yog qhov pom zoo kom khaws Cov Kev Pabcuam / Tswjhwm hauv module uas lawv feem ntau siv hauv Nestjs.
NestCLI yog siv los tsim cov qauv feem ntau ntawm lub sijhawm, thiab cov chaw muab kev pabcuam / cov tswj hwm tsim nyob rau hauv qhov module cov ntsiab lus tau txais kev ntxiv los ntawm CLI. Cov no yog hu ua feature modules.
5. Exception Filters
Exception filters yog cov neeg ua haujlwm yuam kev uas tau hu thaum Tus Tswj Xyuas cuam tshuam qhov kev zam. Nws cia li tswj qhov teeb meem thiab xa cov lus tsim nyog, tus neeg siv khoom yuam kev.
Ntau HttpException tau txais txiaj ntsig tshwj xeeb yog muab los ntawm pob @nestjs/common, suav nrog NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, thiab ntau lwm tus. Koj tuaj yeem tsim koj tus kheej ExceptionFilter.
6. Cov khoom nruab nrab
Ib txoj haujlwm uas tau hais ua ntej tus neeg tuav txoj haujlwm hu ua middleware. Cov khoom thov thiab cov lus teb, nrog rau cov khoom siv nruab nrab tom ntej no hauv daim ntawv thov lub voj voog kev thov teb, tuaj yeem nkag mus rau cov haujlwm nruab nrab.
Ib qho txawv txav hu ua tom ntej no feem ntau yog siv los txheeb xyuas cov haujlwm nruab nrab tom ntej. Kev cai Nest nruab nrab tuaj yeem siv tau rau hauv ib txoj hauv kev lossis chav kawm siv @Injectable() decorator.
7. Cov neeg saib xyuas
Cov neeg saib xyuas tsuas yog lub luag haujlwm rau ib yam xwb. Nws yog lawv lub luag haujlwm los ntsuas seb qhov kev thov yuav raug ua tiav los ntawm tus maub los raws li cov xwm txheej tshwj xeeb (Tshwj xeeb, cov neeg siv cov lus piav qhia).
Nws muaj txiaj ntsig zoo rau kev lees paub / kev tso cai thiab yog txoj hauv kev pom zoo hauv Nestjs.
Txawm hais tias kev lees paub / kev tso cai, thiab lwm yam, tuaj yeem ua tiav siv cov khoom nruab nrab, nws tsis ua tiav hauv kev nthuav qhia lossis lwm HTTP servers vim lawv tsis muaj cov ntsiab lus muaj zog thiab tsis muaj laj thawj paub tias yuav siv txoj hauv kev twg los ua cov ntawv thov.
zoo
- Lub moj khaum yog kev vam khom rau cov lus piav qhia, uas yog siv los tsim txhua yam los ntawm cov ntsiab lus kawg mus rau Swagger cov ntaub ntawv. Cov ntsiab lus kawg yog qhov yooj yim thiab huv si, thiab cov lus piav qhia ua rau kev txhim kho yooj yim dua.
- Nws yog qhov yooj yim rau kev nthuav dav dav dav dav dav thiab rov siv cov lej hauv ntau qhov haujlwm txij li Nest.js yog lub hauv paus ntawm cov qauv.
- Nest.js 'folder qauv yog cuam tshuam los ntawm Angular. Thaum tsim ib qho kev pabcuam Nest, qhov no tso cai rau lub sijhawm poob qis.
- Cheebtsam muaj lawv tus kheej cov npe, nrog cov hauv paus muaj cov ntawv thov module thiab cov ntaub ntawv tseem ceeb. Vim hais tias ntawm qhov yooj yim ntawm cov qauv, ntau xim tuaj yeem muab tso rau qhov tsim ntawm qhov kawg thiab lawv cov neeg siv khoom ntau dua li cov qauv ntawm daim ntawv thov.
- Zes, zoo li Angular, muaj cov cuab yeej hais kom ua kab zoo, Nestjs / cli, uas muaj los ntawm Node Package Manager.
tsis zoo
- Nest muaj qhov zoo dua ntawm kev siv TypeScript thiab Angular kev koom ua ke, tab sis nws tsis muaj kev txhawb nqa nyiaj txiag ntawm lub tuam txhab loj.
- Qhov tsis muaj ntaub ntawv ua rau muaj kev hem thawj loj tshaj plaws rau cov neeg siv Nest. Txawm hais tias lub moj khaum muaj kev sib cuam tshuam zoo nrog rau lwm lub hauv paus, cov ntaub ntawv tsis sib xws thiab tsis daws qhov teeb meem uas yuav tshwm sim.
- Nest muaj qhov zoo dua ntawm kev siv TypeScript thiab Angular.
xaus
NestJS muab cov neeg tsim tawm nrog cov ceg loj. Txhawm rau pib txhim kho, txhua yam koj yuav tsum ua yog tsim ib lub app tshiab thiab koj nyob nraum zoo mus. Lub moj khaum no muab kev txhawb nqa tseem ceeb tam sim ntawd, thaum tseem pab koj ua cov theem ntxiv los ntawm kev tsim kom muaj ib qho app tsim nyog.
Nws ua rau kev siv cov txheej txheem txiav-ntug thiab thev naus laus zis los tsim cov ntawv thov uas tuaj yeem tswj tau thiab kav ntev. Nws tuaj yeem siv los txuas rau GraphQL, WebSockets, thiab tsim microservices.
Sau ntawv cia Ncua