У 2021, ЈаваСцрипт је био најчешће коришћени програмски језик.
Привлачност ове технологије је неоспорна, као што се види из огромног броја оквира који омогућавају ЈаваСцрипт програмирање.
Постоје Ангулар, Реацт и Вуе на фронтенду, као и Екпресс и Нект на позадини, да поменемо само неке.
Са толико дивних оквира за позадинско програмирање у ЈаваСцрипт-у доступним, можда размишљате зашто бих тражио нешто другачије, а не једноставно користећи Екпресс или Нект.
Можда морате брзо да покренете процес развоја са пристојним шаблоном, а ручним додавањем не само нових контролера, већ и услуга постајете болесни.
Или желите да креирате велики, скалабилан софтвер којим је једноставно управљати. Или можда једноставно желите да радите на ефикаснији и погоднији начин.
Без обзира на то шта је тачно у вашим околностима, Нест.јс може бити савршено решење за ваше потребе.
Овај пост ће пружити НестЈС увид, као и практично искуство.
Шта је НестЈС?
НестЈС је прогресивни Ноде оквир који је отвореног кода, проширив и прилагодљив .Јс оквир за изградњу, ангажовање и изазовне позадинске системе. То је сада чвор са најбржом стопом раста.
ТипеСцрипт оквир за јс. НестЈС се користи за креирање апликација које су скалабилне, тестиране и лабаво повезане.
То додаје скалабилност чвору. Јс сервери су подигнути на потпуно нови ниво. ПостгреСКЛ, МонгоДБ и МиСКЛ су међу подржаним базама података.
НестЈС је проширив јер се може користити са другим библиотекама; флексибилан због свог прилагодљивог потпуно развијеног екосистема. И прогресиван јер подржава ЈаваСцрипт функције и принципе дизајна.
На њега првенствено утичу Ангулар, Реацт и Вуе и долази са уграђеном ињекцијом зависности.
Карактеристике
- Једноставан је за коришћење, учење и савладавање.
- Бесплатно је и опен соурце (МИТ лиценца)
- Моћан интерфејс командне линије (ЦЛИ) за повећану продуктивност и једноставност развоја
- Програми за тестирање јединица који су једноставни за коришћење
- Користи се ТипеСцрипт, чврсто откуцани језик који је надскуп ЈаваСцрипт-а.
- Развој и одржавање активне кодне базе.
- Подршка за стотине модула специфичних за гнездо који олакшавају повезивање са популарним технологијама и идејама као што су ТипеОРМ, Монгоосе, ГрапхКЛ, евидентирање, валидација, кеширање, ВебСоцкетс и још много тога.
Који су градивни блокови НестЈС-а?
Компоненте изградње Нест апликација су наведене у наставку; има и других, али ова три су најзначајнија. Хајде да их брзо погледамо.
КСНУМКС. Контролери
Контролори су задужени за обраду долазних захтева и одговарање клијентима. Он прима одређене ХТТП захтеве, а систем рутирања одређује који контролер добија који захтев.
Затим саставља одговарајући одговор за слање. Уз помоћ класа и декоратора, направљен је једноставан колектор и сваки контролер има свој сет рута за обављање различитих задатака.
2. Провајдери
Добављачи су кључна идеја у Нест-у. Многе основне Нест класе — услуге, спремишта, фабрике, помоћници и тако даље — могу се користити као добављачи.
Основна идеја провајдера је да се може убацити као зависност; ово имплицира да објекти могу формирати различите асоцијације једни са другима, а улога „повезивања“ инстанци објеката може се углавном пренети на Нест рунтиме систем.
3. Модули
Модул је класа са @Модуле() декоратером који организује компоненте структуре апликације. Свака апликација има основни модул који се користи за конструисање графа апликације, који даље решава зависности и интеракције између провајдера и модула.
Овај декоратер даје метаподатке Нест.јс-у како би идентификовао које компоненте, контролери или други ресурси ће се користити у коду апликације и комбиновати их у један скуп.
Сваки модул има колекцију могућности које су на неки начин повезане.
Почетак рада са НестЈС-ом
КСНУМКС. инсталација
Хајде да инсталирамо НестЈС и направимо пројекат са њим пратећи ове кораке:
Као резултат овога биће креирана следећа структура директоријума:
КСНУМКС. Контролери
Грађевински блокови Гнезда су контролори. Ово су локације на којима ће се обрађивати улазни захтеви. Можете да наведете путању руте помоћу модификатора ХТТП метода (Гет, Пост, Пут, Делете и тако даље), као што се види у коду испод.
Нестјс користи приступ декоратера и углавном је развијен у Типесцрипт-у, иако такође подржава ЈаваСцрипт. Такође можете користити валидатор класе да потврдите тело захтева.
Само ћу направити инстанцу Нестјс сервера и додати ВалидатионПипе глобално. Цијеви су само методе које се извршавају прије контролера. Цеви се такође могу применити на нивоу методе/аргумента помоћу декоратора @УсеПипес.
3. Провајдери
Добављачи су још једна критична компонента Нестјс-а. До сада сам чувао податке у привременој променљивој. Због тога се тако једноставан задатак може постићи коришћењем контролера.
Међутим, за већу, компликованију логику, раздвајање кода и поновна употреба би били тешки. Тада долазе добављачи. Можете декларисати/креирати добављача на врху класе коришћењем @Ињецтабле декоратора. Затим, користећи провајдере, можете да урадите ињекцију зависности, евидентирање и друге задатке.
4. Модули
Нестјс модули нису глобални; уместо тога, имају дубину.
Међутим, може се делити и са било којим другим модулима. Иако, као и Ангулар, нуди глобалне модуле, препоручљивије је задржати услуге/контролере у модулу где се најчешће користе у Нестјс-у.
НестЦЛИ се користи за производњу модула већину времена, а ЦЛИ аутоматски додаје добављаче/контролере генерисане у контексту тог модула. Они су познати као модули функција.
5. Филтери изузетака
Филтери изузетака су руковаоци грешака који се позивају када контролер избаци изузетак. Аутоматски управља проблемом и испоручује одговарајућу поруку о грешци лаку за корисника.
Многе ХттпЕкцептион наслеђене изузетке обезбеђује пакет @нестјс/цоммон, укључујући НотФоундЕкцептион, БадРекуестЕкцептион, НотАццептаблеЕкцептион, УнаутхоризедЕкцептион и многе друге. Можете чак да дизајнирате сопствени ЕкцептионФилтер.
6. Миддлеваре
Функција која се позива пре руковаоца руте назива се међувера. Објекти захтева и одговора, као и нект() функција међувера у циклусу захтев-одговор апликације, доступни су функцијама међуверског софтвера.
Променљива која се зове нект се обично користи за идентификацију следеће функције међувера. Прилагођени средњи софтвер Нест-а може се имплементирати у методу или класу помоћу @Ињецтабле() декоратора.
7. Стражари
Чувари су одговорни само за једно. Њихова је одговорност да процене да ли ће контролор обрадити захтев или не на основу специфичних околности (конкретно, кориснички дефинисане логике).
То је корисно за аутентификацију/ауторизацију и препоручена је метода у Нестјс-у.
Иако се аутентификација/дозволе, итд., могу обавити коришћењем међувера, то се не ради на експресним или другим ХТТП серверима јер они немају повезани јак контекст и немају разлога да знају који метод ће се користити за обраду захтева.
Предности
- Оквир се у великој мери ослања на напомене, које се користе за производњу било чега, од крајњих тачака до Сваггер документације. Крајње тачке су основне и уредне, а напомене уопштено олакшавају развој.
- Једноставно је екстернализовати модуле опште намене и поново користити код у многим пројектима пошто је Нест.јс оквир заснован на модулима.
- Ангулар значајно утиче на структуру директоријума Нест.јс. Када дизајнирате Нест услугу, ово омогућава минимално време застоја.
- Компоненте имају сопствене директоријуме, са кореном који садржи модул апликације и главну датотеку. Због једноставности структуре, више пажње се може посветити дизајну крајњих тачака и њихових купаца, а не структури апликације.
- Нест, као и Ангулар, нуди леп алат командне линије, Нестјс/цли, који је доступан преко Ноде Пацкаге Манагер-а.
Мане
- Нест има предност у погледу употребе ТипеСцрипт-а и Ангулар интеграције, али му недостаје финансијска подршка огромне корпорације.
- Недостатак документације представља највећу претњу за Нест кориснике. Иако оквир има одличну интеракцију са другим оквирима, документација је оскудна и не бави се потенцијалним потешкоћама.
- Нест има предност у погледу употребе ТипеСцрипт-а и Ангулар-а.
Zakljucak
НестЈС пружа програмерима огромну предност. Да бисте започели развој, све што треба да урадите је направите нову апликацију и спремни сте. Овај оквир одмах пружа значајан подстицај, а истовремено вам помаже да пређете на додатне фазе успостављањем одговарајуће архитектуре апликације.
Користи најсавременије методе и технологију за производњу апликација које су управљиве и дуготрајне. Може се користити за повезивање на ГрапхКЛ, ВебСоцкетс и конструисање микросервиса.
Ostavite komentar