2021 онд JavaScript нь хамгийн өргөн хэрэглэгддэг програмчлалын хэл байв.
JavaScript програмчлалыг идэвхжүүлдэг асар олон тооны хүрээнээс харахад энэ технологийн сонирхол татахуйц нь маргаангүй юм.
Урд талд нь Angular, React, Vue, мөн арын хэсэгт Express, Next гэсэн хэд хэдэн хувилбарууд байдаг.
JavaScript-н арын програмчлалд зориулсан маш олон гайхалтай фрэймворкууд байдаг тул та яагаад би Express эсвэл Next-ийг ашиглахын оронд өөр зүйл хайх вэ гэж бодож байж магадгүй юм.
Магадгүй та боломжийн хавтанг ашиглан хөгжүүлэлтийн процессыг хурдан эхлүүлэх хэрэгтэй бөгөөд зөвхөн шинэ хянагч төдийгүй үйлчилгээг гараар нэмэх нь таныг өвчлөхөд хүргэдэг.
Эсвэл та удирдахад хялбар том, өргөтгөх боломжтой программ хангамж бүтээхийг хүсч байна. Эсвэл та зүгээр л илүү үр ашигтай, тохиромжтой байдлаар ажиллахыг хүсч байгаа байх.
Таны нөхцөл байдлын аль нь үнэн байхаас үл хамааран Nest.js нь таны хэрэгцээнд тохирсон төгс шийдэл байж чадна.
Энэ нийтлэл нь NestJS-ийн ойлголтыг өгөхөөс гадна практик туршлагаар хангах болно.
NestJS гэж юу вэ?
NestJS нь нээлттэй эх сурвалжтай, өргөтгөх боломжтой, дасан зохицох боломжтой дэвшилтэт Node framework юм .Js backend системийг бий болгох, татан оролцуулах, сорилтод хүргэх хүрээ. Энэ нь одоо хамгийн хурдан өсөлттэй зангилаа болж байна.
js-д зориулсан TypeScript хүрээ. NestJS нь өргөтгөх боломжтой, туршиж үзэх боломжтой, чөлөөтэй холбогдсон програмуудыг үүсгэхэд ашиглагддаг.
Энэ нь Node-д өргөтгөх чадварыг нэмдэг. Js серверүүд цоо шинэ түвшинд гарлаа. PostgreSQL, MongoDB болон MySQL нь дэмжигдсэн мэдээллийн сангуудын нэг юм.
NestJS нь бусад номын сантай хамт ашиглах боломжтой тул өргөтгөх боломжтой; дасан зохицох чадвартай бүрэн экосистемийн ачаар уян хатан. JavaScript функцууд болон дизайны зарчмуудыг дэмждэг тул дэвшилтэт.
Энэ нь үндсэндээ Angular, React, Vue-ийн нөлөөнд автдаг бөгөөд суурилуулсан хамаарлын тарилгатай ирдэг.
онцлог
- Үүнийг ашиглах, сурах, эзэмшихэд хялбар.
- Энэ нь үнэ төлбөргүй бөгөөд нээлттэй эх үүсвэр (MIT лиценз)
- Бүтээмжийг нэмэгдүүлэх, хөгжүүлэхэд хялбар болгох хүчирхэг Command Line Interface (CLI).
- Хэрэглэхэд хялбар нэгж тестийн програмууд
- TypeScript нь JavaScript-н дээд багц болох нягт шивэгдсэн хэлийг ашигладаг.
- Идэвхтэй кодын баазыг хөгжүүлэх, засварлах.
- TypeORM, Mongoose, GraphQL, бүртгэл хөтлөх, баталгаажуулах, кэш хийх, WebSockets гэх мэт алдартай технологи, санаануудыг ашиглахад хялбар болгодог олон зуун үүрэнд зориулагдсан модулиудын дэмжлэг.
NestJS-ийн барилгын материал юу вэ?
Nest програмын барилгын бүрэлдэхүүн хэсгүүдийг доор жагсаав; бусад байдаг, гэхдээ эдгээр гурав нь хамгийн чухал юм. Тэднийг хурдан харцгаая.
1. Controllers
Хянагч нар ирж буй хүсэлтийг боловсруулах, үйлчлүүлэгчдэд хариу өгөх үүрэгтэй. Энэ нь тодорхой HTTP хүсэлтийг хүлээн авдаг бөгөөд чиглүүлэлтийн систем нь аль хянагч ямар хүсэлтийг хүлээн авахыг тодорхойлдог.
Дараа нь илгээх тохиромжтой хариултын төслийг боловсруулдаг. Ангиуд болон гоёл чимэглэлийн хүмүүсийн тусламжтайгаар энгийн коллектор бүтээгдсэн бөгөөд хянагч бүр янз бүрийн ажлыг гүйцэтгэх өөрийн гэсэн маршруттай байдаг.
2. Үйлчилгээ үзүүлэгчид
Үйлчилгээ үзүүлэгч нь Nest-ийн гол санаа юм. Үйлчилгээ, хадгалах газар, үйлдвэр, туслагч гэх мэт Nest-ийн үндсэн ангиудыг үйлчилгээ үзүүлэгчээр удирдаж болно.
Үйлчилгээ үзүүлэгчийн үндсэн ойлголт нь үүнийг хамаарал болгон тарьж болно; Энэ нь объектууд өөр хоорондоо янз бүрийн холбоо үүсгэж, объектуудын "утас холбох" үүргийг голчлон Nest ажиллах цагийн системд шилжүүлж болно гэсэн үг юм.
3. Модулиуд
Модуль нь програмын бүтцийн бүрэлдэхүүн хэсгүүдийг зохион байгуулдаг @Module() чимэглэгчтэй анги юм. Аппликейшн бүр нь програмын графикийг бүтээхэд ашигладаг эх модультай бөгөөд энэ нь үйлчилгээ үзүүлэгч болон модулийн хоорондын хамаарал, харилцан үйлчлэлийг цаашид шийддэг.
Аппликешны кодонд ямар бүрэлдэхүүн хэсэг, хянагч эсвэл бусад нөөцийг ашиглахыг тодорхойлж, тэдгээрийг нэг багц болгон нэгтгэхийн тулд энэ чимэглэгч Nest.js-д мета өгөгдлийг өгдөг.
Модуль бүр нь ямар нэгэн байдлаар холбогдсон боломжуудын цуглуулгатай.
NestJS-г ашиглаж эхэлж байна
1. суурилуулах ажил
NestJS-г суулгаж, дараах алхмуудыг дагаж түүгээр төсөл хийцгээе:
Үүний үр дүнд дараах лавлах бүтэц бий болно.
2. Controllers
Nest-ийн барилгын блокууд нь хянагч юм. Эдгээр нь ирж буй хүсэлтийг шийдвэрлэх газрууд юм. Та доорх кодоос харсны дагуу HTTP аргын хувиргагч (Get, Post, Put, Delete гэх мэт) чимэглэгчийг ашиглан маршрутын замыг зааж өгч болно.
Nestjs нь гоёл чимэглэлийн аргыг ашигладаг бөгөөд ихэвчлэн Typescript дээр боловсруулагдсан боловч JavaScript-ийг дэмждэг. Та мөн хүсэлтийн хэсгийг баталгаажуулахын тулд анги баталгаажуулагчийг ашиглаж болно.
Би зүгээр л Nestjs серверийн жишээг хийж дэлхийн хэмжээнд ValidationPipe нэмэх гэж байна. Хоолой нь зөвхөн хянагчаас өмнө гүйцэтгэдэг аргууд юм. Хоолойг мөн @UsePipes чимэглэгчийг ашиглан арга/аргументийн түвшинд хэрэглэж болно.
3. Үйлчилгээ үзүүлэгчид
Үйлчилгээ үзүүлэгчид нь Nestjs-ийн өөр нэг чухал бүрэлдэхүүн хэсэг юм. Одоогоор би өгөгдлийг түр зуурын хувьсагчид хадгалж байсан. Ийм учраас ийм энгийн ажлыг Controller handers ашиглан хийж болно.
Гэсэн хэдий ч илүү том, илүү төвөгтэй логикийн хувьд кодыг салгаж, дахин ашиглахад хэцүү байх болно. Энэ үед ханган нийлүүлэгчид орж ирдэг. Та @Injectable чимэглэгчийг ашиглан нэг анги дээр үйлчилгээ үзүүлэгчийг зарлах/бүтээх боломжтой. Дараа нь үйлчилгээ үзүүлэгчдийг ашигласнаар та хараат байдлын тарилга, бүртгэл болон бусад ажлуудыг хийж болно.
4. Модулиуд
Nestjs модулиуд нь глобал биш; оронд нь тэд гүнтэй байдаг.
Гэсэн хэдий ч үүнийг бусад модулиудтай хуваалцах боломжтой. Хэдийгээр энэ нь Angular-ийн нэгэн адил Глобал модулиудыг санал болгодог ч үйлчилгээ/хянагчийг Nestjs-д хамгийн их ашигладаг модульд байлгахыг зөвлөж байна.
NestCLI нь ихэвчлэн модулиудыг үйлдвэрлэхэд ашиглагддаг бөгөөд тухайн модулийн контекстэд үүсгэгдсэн үйлчилгээ үзүүлэгч/хянагчдыг CLI автоматаар нэмдэг. Эдгээрийг онцлог модулиуд гэж нэрлэдэг.
5. Exception Filters
Онцгой байдлын шүүлтүүрүүд нь Хянагч онцгой тохиолдол гаргах үед дуудагддаг алдаа зохицуулагч юм. Энэ нь асуудлыг автоматаар удирдаж, хэрэглэгчдэд ээлтэй алдааны мессежийг хүргэдэг.
NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException болон бусад олон тооны HttpException өвлөн авсан онцгой тохиолдлуудыг @nestjs/common багцаар хангадаг. Та өөрийн ExceptionFilter-ийг зохион бүтээх боломжтой.
6. Дунд програм
Маршрут зохицуулагчийн өмнө дуудагддаг функцийг дунд програм гэж нэрлэдэг. Хүсэлт ба хариултын объектууд, мөн програмын хүсэлт-хариу хариулах мөчлөг дэх дараагийн() дундын програм хангамжийн функцэд дунд програм хангамжийн функцууд хандах боломжтой.
Дараах гэж нэрлэгддэг хувьсагчийг ихэвчлэн дараагийн завсрын програмын функцийг тодорхойлоход ашигладаг. Custom Nest дунд программыг @Injectable() чимэглэгчийг ашиглан арга эсвэл ангид хэрэгжүүлж болно.
7. Харуул
Харуул зөвхөн нэг л зүйлийг хариуцдаг. Тодорхой нөхцөл байдалд (ялангуяа хэрэглэгчийн тодорхойлсон логик) үндэслэн хүсэлтийг хянагч боловсруулах эсэхийг үнэлэх нь тэдний үүрэг юм.
Энэ нь баталгаажуулалт/зөвшөөрөлд тустай бөгөөд Nestjs-д санал болгож буй арга юм.
Баталгаажуулалт/зөвшөөрөл гэх мэтийг дунд программ ашиглан хийж болох ч энэ нь экспресс эсвэл бусад HTTP серверт хийгддэггүй, учир нь тэдгээрт холбогдох хүчтэй контекст байхгүй бөгөөд хүсэлтийг боловсруулахад ямар аргыг ашиглахыг мэдэх ямар ч шалтгаан байхгүй.
Давуу тал
- Энэхүү хүрээ нь төгсгөлийн цэгүүдээс эхлээд Swagger баримт бичиг хүртэл ямар ч зүйлийг гаргахад хэрэглэгддэг тэмдэглэгээнээс ихээхэн хамаардаг. Төгсгөлийн цэгүүд нь энгийн бөгөөд эмх цэгцтэй бөгөөд тэмдэглэгээ нь ерөнхийдөө хөгжлийг илүү хялбар болгодог.
- Nest.js нь модульд суурилсан фреймворк учраас ерөнхий зориулалтын модулиудыг гадагшлуулах, кодыг олон төсөлд дахин ашиглахад хялбар байдаг.
- Nest.js-н фолдерын бүтцэд Angular ихээхэн нөлөөлдөг. Nest үйлчилгээг зохион бүтээхдээ энэ нь хамгийн бага зогсолт хийх боломжийг олгодог.
- Бүрэлдэхүүн хэсгүүд нь програмын модуль болон үндсэн файлыг агуулсан өөрийн гэсэн сангуудтай байдаг. Бүтцийн энгийн байдлаас шалтгаалан хэрэглээний бүтцээс илүүтэй төгсгөлийн цэгүүд болон тэдгээрийн үйлчлүүлэгчдийн дизайнд илүү их анхаарал хандуулж болно.
- Nest нь Angular шиг Nestjs/cli командын мөрийн хэрэгслийг санал болгодог бөгөөд үүнийг Node Package Manager-ээр дамжуулан авах боломжтой.
Сул тал
- Nest нь TypeScript хэрэглээ болон өнцгийн интеграцийн хувьд давуу талтай ч асар том корпорацийн санхүүгийн дэмжлэг дутмаг.
- Баримт бичгийн хомсдол нь Nest хэрэглэгчдэд хамгийн их аюул учруулж байна. Хэдийгээр уг хүрээ нь бусад хүрээтэй маш сайн харилцан үйлчлэлтэй боловч баримтжуулалт нь сийрэг бөгөөд ямар нэгэн болзошгүй хүндрэлийг авч үздэггүй.
- Nest нь TypeScript хэрэглээ болон Angular-ын хувьд давуу талтай.
Дүгнэлт
NestJS нь хөгжүүлэгчдэд асар том боломжийг олгодог. Хөгжлийг эхлүүлэхийн тулд та хийх ёстой зүйл л юм шинэ програм үүсгэх тэгээд та явахад таатай байна. Энэхүү хүрээ нь шууд мэдэгдэхүйц түлхэц өгөхийн зэрэгцээ тохирох програмын архитектурыг бий болгосноор нэмэлт үе шатуудыг давахад тань туслах болно.
Энэ нь удирдах боломжтой, удаан эдэлгээтэй програмуудыг үйлдвэрлэхийн тулд хамгийн сүүлийн үеийн арга, технологийг ашигладаг. Үүнийг GraphQL, WebSockets-тэй холбох, микро үйлчилгээ байгуулахад ашиглаж болно.
хариу үлдээх