Բառը[Թաքցնել][Ցուցադրում]
2021 թվականին JavaScript-ը ամենաշատ օգտագործվող ծրագրավորման լեզուն էր։
Այս տեխնոլոգիայի գրավչությունը անհերքելի է, քանի որ դա երևում է JavaScript ծրագրավորումը թույլատրող շրջանակների հսկայական քանակից:
Առջևի մասում կան Angular, React և Vue, ինչպես նաև հետին մասում Express և Next՝ նշելու մի քանիսը:
JavaScript-ով հետին պլանային ծրագրավորման այնքան հիանալի շրջանակներով, դուք կարող եք մտածել, թե ինչու ես այլ բան փնտրեմ, քան պարզապես Express կամ Next օգտագործելը:
Հավանաբար, ձեզ հարկավոր է արագ սկսել մշակման գործընթացը պատշաճ կաթսայի միջոցով, և ձեռքով ոչ միայն նոր կարգավորիչներ, այլև ծառայություններ ավելացնելը ձեզ հիվանդացնում է:
Կամ ցանկանում եք ստեղծել մեծ, մասշտաբային ծրագրակազմ, որը հեշտ է կառավարել: Կամ գուցե դուք պարզապես ցանկանում եք աշխատել ավելի արդյունավետ և հարմար ձևով:
Անկախ նրանից, թե որն է ճիշտ ձեր հանգամանքներում, Nest.js-ը կարող է կատարյալ լուծում լինել ձեր կարիքների համար:
Այս գրառումը կտրամադրի NestJS-ի պատկերացումները, ինչպես նաև գործնական փորձը:
Ի՞նչ է NestJS-ը:
NestJS առաջադեմ հանգույց է, որը բաց կոդով է, ընդարձակվող և հարմարվող .Ջս շրջանակ՝ ստեղծելու, ներգրավելու և դժվարին հետին համակարգերի համար: Այն այժմ ամենաարագ աճի տեմպերով հանգույցն է:
TypeScript շրջանակ js-ի համար: 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. Կարգավորիչներ
Վերահսկիչները պատասխանատու են մուտքային հարցումների մշակման և հաճախորդներին պատասխանելու համար: Այն ստանում է որոշակի HTTP հարցումներ, և երթուղային համակարգը որոշում է, թե որ վերահսկիչն ինչ հարցում է ստանում:
Այնուհետև այն պատրաստում է համապատասխան պատասխան՝ ուղարկելու համար: Դասերի և դեկորատորների օգնությամբ կառուցվում է պարզ կոլեկցիոներ, և յուրաքանչյուր կարգավորիչ ունի իր երթուղիները տարբեր առաջադրանքներ կատարելու համար:
2. Մատակարարներ
Մատակարարները Nest-ի հիմնական գաղափարն են: Nest-ի հիմնական դասերից շատերը՝ ծառայություններ, պահոցներ, գործարաններ, օգնականներ և այլն, կարող են ծառայել որպես մատակարարներ:
Մատակարարի հիմնական հասկացությունն այն է, որ այն կարող է ներարկվել որպես կախվածություն. Սա ենթադրում է, որ օբյեկտները կարող են տարբեր ասոցիացիաներ ստեղծել միմյանց հետ, և օբյեկտների «լարերի միացման» դերը կարող է հիմնականում փոխանցվել Nest-ի գործարկման համակարգին:
3. Մոդուլներ
Մոդուլը դաս է @Module() դեկորատորով, որը կազմակերպում է հավելվածի կառուցվածքի բաղադրիչները։ Յուրաքանչյուր հավելված ունի արմատային մոդուլ, որն օգտագործվում է հավելվածի գրաֆիկը կառուցելու համար, որը հետագայում լուծում է մատակարարի և մոդուլի միջև կախվածությունն ու փոխազդեցությունը:
Այս դեկորատորը մետատվյալներ է տալիս Nest.js-ին, որպեսզի պարզի, թե որ բաղադրիչները, կարգավորիչները կամ այլ ռեսուրսները կօգտագործվեն հավելվածի կոդում և կմիավորեն դրանք մեկ հավաքածուի մեջ:
Յուրաքանչյուր մոդուլ ունի հնարավորությունների հավաքածու, որոնք ինչ-որ կերպ կապված են:
Սկսում ենք NestJS-ով
1: տեղակայում
Եկեք տեղադրենք NestJS-ը և դրա հետ նախագիծ կազմենք՝ հետևելով հետևյալ քայլերին.
Դրա արդյունքում կստեղծվի հետևյալ գրացուցակի կառուցվածքը.
2. Կարգավորիչներ
The Nest-ի կառուցման բլոկները կարգավորիչներն են: Սրանք այն վայրերն են, որտեղ ներգնա հարցումները կկարգավորվեն: Դուք կարող եք նշել երթուղու ուղին՝ օգտագործելով HTTP մեթոդի մոդիֆիկատորները (Get, Post, Put, Delete և այլն) դեկորատորներ, ինչպես երևում է ստորև բերված ծածկագրում:
Nestjs-ն օգտագործում է դեկորատորի մոտեցումը և հիմնականում մշակված է Typescript-ով, թեև այն նաև աջակցում է JavaScript-ին: Դուք կարող եք նաև օգտագործել դասի վավերացուցիչ՝ հարցումը հաստատելու համար:
Ես պարզապես պատրաստվում եմ ստեղծել Nestjs սերվերի օրինակ և ավելացնել ValidationPipe-ը ամբողջ աշխարհում: Խողովակները պարզապես մեթոդներ են, որոնք գործարկվում են վերահսկիչներից առաջ: Խողովակները կարող են կիրառվել նաև մեթոդի/փաստարկի մակարդակում՝ օգտագործելով @UsePipes դեկորատորը:
3. Մատակարարներ
Պրովայդերները Nestjs-ի ևս մեկ կարևոր բաղադրիչ են: Առայժմ ես տվյալները պահում էի ժամանակավոր փոփոխականում: Ահա թե ինչու նման պարզ խնդիր կարելի է իրականացնել Controller handlers-ի միջոցով:
Այնուամենայնիվ, ավելի մեծ, ավելի բարդ տրամաբանության համար կոդի բաժանումը և կրկնակի օգտագործումը դժվար կլինի: Սա այն դեպքում, երբ մատակարարները գալիս են: Դուք կարող եք հայտարարել/ստեղծել մատակարար դասի վերևում՝ օգտագործելով @Injectable decorator-ը: Այնուհետև, օգտագործելով պրովայդերները, կարող եք կատարել կախվածության ներարկում, գրանցում և այլ առաջադրանքներ:
4. Մոդուլներ
Nestjs մոդուլները գլոբալ չեն. փոխարենը նրանք ունեն խորություն:
Այնուամենայնիվ, այն կարող է համօգտագործվել նաև ցանկացած այլ մոդուլի հետ: Թեև այն, ինչպես Angular-ը, առաջարկում է Գլոբալ մոդուլներ, սակայն ավելի նպատակահարմար է Ծառայությունները/Կարգավորիչները պահել այն մոդուլում, որտեղ դրանք առավել հաճախ օգտագործվում են Nestjs-ում:
NestCLI-ն օգտագործվում է հիմնականում մոդուլներ արտադրելու համար, և այդ մոդուլի համատեքստում ստեղծվող մատակարարները/վերահսկիչները ավտոմատ կերպով ավելացվում են CLI-ի կողմից: Դրանք հայտնի են որպես առանձնահատկությունների մոդուլներ:
5. Բացառության զտիչներ
Բացառության զտիչները սխալների մշակիչներ են, որոնք կանչվում են, երբ վերահսկիչը բացառություն է անում: Այն ավտոմատ կերպով կառավարում է խնդիրը և ուղարկում է համապատասխան, օգտագործողի համար հարմար սխալի հաղորդագրություն:
Շատ HttpException ժառանգված բացառություններ տրամադրվում են @nestjs/common փաթեթի կողմից, ներառյալ NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException և շատ ուրիշներ: Դուք նույնիսկ կարող եք նախագծել ձեր սեփական ExceptionFilter-ը:
6. Միջին ծրագրեր
Գործառույթը, որը կանչվում է երթուղու մշակիչից առաջ, կոչվում է միջին ծրագիր: Հարցման և պատասխանի օբյեկտները, ինչպես նաև հավելվածի հարցում-արձագանքման ցիկլի հաջորդ() միջին ծրագրային գործառույթը հասանելի են միջին ծրագրի գործառույթներին:
Հաջորդ կոչվող փոփոխականը սովորաբար օգտագործվում է հաջորդ միջին ծրագրային ֆունկցիան նույնականացնելու համար: Պատվերով Nest-ի միջին ծրագիրը կարող է իրականացվել մեթոդի կամ դասի մեջ՝ օգտագործելով @Injectable() դեկորատորը:
7. Պահակներ
Պահակները պատասխանատու են միայն մեկ բանի համար. Նրանց պարտականությունն է գնահատել, թե արդյոք հարցումը կմշակվի վերահսկիչի կողմից՝ հիմնվելով կոնկրետ հանգամանքների վրա (մասնավորապես՝ օգտագործողի կողմից սահմանված տրամաբանությունը):
Այն օգտակար է նույնականացման/լիազորման համար և Nestjs-ում առաջարկվող մեթոդ է:
Թեև նույնականացումը/թույլտվությունները և այլն կարող են իրականացվել միջին ծրագրաշարի միջոցով, այն չի արվում էքսպրես կամ այլ HTTP սերվերներում, քանի որ դրանք չունեն համապատասխան ուժեղ համատեքստ և պատճառ չունեն իմանալու, թե որ մեթոդն է օգտագործվելու հարցումը մշակելու համար:
Առավելությունները
- Շրջանակը մեծապես կախված է ծանոթագրություններից, որոնք օգտագործվում են ցանկացած բան ստեղծելու համար՝ սկսած վերջնակետերից մինչև Swagger-ի փաստաթղթեր: Վերջնական կետերը հիմնական և կոկիկ են, իսկ ծանոթագրությունները ընդհանուր առմամբ հեշտացնում են զարգացումը:
- Պարզ է ընդհանուր նշանակության մոդուլների արտաքին օգտագործումը և կոդերի վերօգտագործումը շատ նախագծերում, քանի որ Nest.js-ը մոդուլի վրա հիմնված շրջանակ է:
- Nest.js-ի թղթապանակի կառուցվածքի վրա էականորեն ազդում է Angular-ը: Nest ծառայությունը նախագծելիս դա թույլ է տալիս նվազագույն ժամանակի ընդհատում:
- Բաղադրիչները ունեն իրենց սեփական գրացուցակները, որոնց արմատը պարունակում է հավելվածի մոդուլը և հիմնական ֆայլը: Կառուցվածքի պարզության պատճառով ավելի շատ ուշադրություն կարելի է դարձնել վերջնակետերի և դրանց հաճախորդների նախագծմանը, այլ ոչ թե հավելվածի կառուցվածքին:
- Nest-ը, ինչպես Angular-ը, առաջարկում է հրամանի տողի գեղեցիկ գործիք՝ Nestjs/cli, որը հասանելի է Node Package Manager-ի միջոցով:
Թերությունները
- Nest-ը առավելություն ունի TypeScript-ի օգտագործման և Angular ինտեգրման առումով, սակայն այն չունի հսկայական կորպորացիայի ֆինանսական աջակցություն:
- Փաստաթղթերի բացակայությունը ամենամեծ սպառնալիքն է Nest-ի օգտատերերի համար։ Թեև շրջանակը հիանալի փոխազդեցություն ունի այլ շրջանակների հետ, փաստաթղթերը սակավ են և չեն անդրադառնում հնարավոր դժվարություններին:
- Nest-ը առավելություն ունի TypeScript-ի օգտագործման և Angular-ի առումով:
Եզրափակում
NestJS-ը ծրագրավորողներին ապահովում է հսկայական առաջընթաց: Զարգացումը սկսելու համար ընդամենը պետք է ստեղծել նոր հավելված և դու պատրաստ ես գնալ: Այս շրջանակն անմիջապես զգալի խթան է ապահովում՝ միաժամանակ օգնելով ձեզ անցնել լրացուցիչ փուլեր՝ ստեղծելով համապատասխան հավելվածի ճարտարապետություն:
Այն օգտագործում է առաջադեմ մեթոդներ և տեխնոլոգիաներ՝ կառավարելի և երկարատև ծրագրեր արտադրելու համար: Այն կարող է օգտագործվել GraphQL-ին, WebSockets-ին միանալու և միկրոծառայությունների կառուցման համար:
Թողնել գրառում