Во 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 и доаѓа со вградено вбризгување на зависност.
Карактеристики
- Едноставен е за користење, учење и совладување.
- Бесплатно е и со отворен код (МИТ лиценца)
- Моќен интерфејс на командната линија (CLI) за зголемена продуктивност и развојна едноставност
- Програми за тестирање на единици кои се едноставни за употреба
- Се користи TypeScript, цврсто отчукуван јазик кој е суперсет на JavaScript.
- Развој и одржување на активна база на кодови.
- Поддршка за стотици модули специфични за гнездото што го олеснуваат интерфејсот со популарните технологии и идеи како TypeORM, Mongoose, GraphQL, логирање, валидација, кеширање, WebSockets и многу повеќе.
Кои се градежните блокови на NestJS?
Градежните компоненти на апликациите Nest се наведени подолу; има и други, но овие три се најзначајните. Ајде да ги погледнеме брзо.
1. Контролери
Контролорите се задолжени за обработка на дојдовните барања и одговор на клиентите. Добива одредени барања за HTTP, а системот за рутирање одредува кој контролер кое барање го добива.
Потоа подготвува соодветен одговор за испраќање. Со помош на класи и декоратори, се гради едноставен колектор и секој контролер има свој сет на правци за извршување на различни задачи.
2. Даватели
Обезбедувачите се клучна идеја во Nest. Многу од основните Nest класи - услуги, складишта, фабрики, помошници и така натаму - може да се ракуваат како добавувачи.
Основниот поим на давателот е дека може да се инјектира како зависност; ова имплицира дека објектите можат да формираат различни асоцијации еден со друг, а улогата на „вклучување“ на примероци на објекти може главно да биде аутсорсинг на системот за извршување на Nest.
3. Модули
Модулот е класа со декоратор @Module() што ги организира компонентите на структурата на апликацијата. Секоја апликација има коренски модул кој се користи за конструирање на графикот на апликацијата, кој дополнително ги решава зависностите и интеракциите помеѓу провајдерот и модулот.
Овој уредувач дава метаподатоци на Nest.js со цел да идентификува кои компоненти, контролери или други ресурси ќе се користат во кодот на апликацијата и да ги комбинира во еден сет.
Секој модул има збирка на способности кои се поврзани на некој начин.
Започнуваме со NestJS
1. инсталација
Ајде да инсталираме NestJS и да направиме проект со него следејќи ги овие чекори:
Како резултат на ова ќе се создаде следнава структура на директориуми:
2. Контролери
Градежните блокови на Nest се контролорите. Ова се локациите каде што ќе се постапуваат дојдовните барања. Можете да ја одредите патеката на маршрутата со помош на декораторите на модификаторите на HTTP методот (Земи, објави, стави, брише и така натаму), како што се гледа во кодот подолу.
Nestjs го користи пристапот на декоратор и најчесто е развиен во Typescript, иако поддржува и JavaScript. Можете исто така да користите валидатор на класа за да го потврдите телото на барањето.
Само ќе направам примерок од серверот Nestjs и ќе додадам ValidationPipe глобално. Цевките се само методи кои се извршуваат пред контролорите. Цевките може да се применат и на ниво на метод/аргумент со помош на декораторот @UsePipes.
3. Даватели
Давателите се уште една критична компонента на Nestjs. Далеку, складирав податоци во привремена променлива. Тоа е причината зошто толку едноставна задача може да се постигне со помош на управувачи на контролори.
Меѓутоа, за поголема, покомплицирана логика, раздвојувањето на кодот и повторната употреба би било тешко. Ова е моментот кога доаѓаат добавувачите. Можете да пријавите/создадете провајдер на врвот на класата со користење на декораторот @Injectable. Потоа, користејќи ги давателите на услуги, можете да правите вбризгување зависност, евидентирање и други задачи.
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 и конструирање микросервис.
Оставете Одговор