Въведение в NestJS [+6 Learning Resources]

NestJS е прогресивна Node.js рамка за изграждане на мащабируеми, ефективни и надеждни приложения от страната на сървъра.

NestJS е създаден, за да премахне неорганизираните кодови бази. Неговата модулна структура улеснява организирането на код в различни модули.

NestJS е изграден на Typescript и използва ExpressJS под капака. NestJS е обичан от разработчиците, които искат да се възползват от мощността на TypeScript за проверка на типа. NestJS съчетава различни аспекти на функционално реактивно програмиране (FRP), обектно ориентирано програмиране (OOP) и функционално програмиране (FP).

Защо NestJS?

NestJS е удобен за начинаещи, тъй като има добра структура и лесни за използване инструменти за интерфейс на командния ред (CLI). По този начин разработчиците могат да скеле нова функция с една команда, докато използват тази Node.js рамка.

NestJS предоставя модула, услугата, контролера и купчината тестове, за да започнете. Можете също така да заложите на многото налични шаблони и шаблони, за да улесните пътуването си в разработката.

Кривата на обучение за NestJS ще бъде лесна за тези, които познават цикли, синтаксис и условия в JavaScript и Angular.

Характеристики на NestJS

Създаден на Typescript

NestJS е изграден върху Typescript, горен индекс на JavaScript. Typescript осигурява по-добро изживяване при разработката, тъй като не е нужно ръчно да проверявате грешките всеки път, когато промените нещо в кода. Typescript основно предлага всички функции на JavaScript, но също така идва с някои допълнителни функции.

Контейнер за инжектиране на зависимости

Инжектирането на зависимост разделя инициализацията на обектите, които класът използва от самия клас. В такъв случай класът се нарича „клиент“, докато зависимостите от класа са известни като „услуги“. Този вграден DI в NestJS прави приложенията по-ефективни и модулни.

Мощен интерфейс на командния ред (CLI)

Можете да инициализирате, разработвате и поддържате всички ваши NestJS приложения с помощта на NestCLI. Има много неща, които можете да правите с помощта на Nest CLI, като например;

  • Скеле на проекта
  • Обслужване на проекта в режим на разработка
  • Изградете и групирайте приложението за разпространение на продукция
  Монитор на производителността на мрежата на SolarWinds (NPM) срещу Nagios XI

Модулизация

Всяко NestJS приложение има поне един модул. Модулът ‘root’ е най-основният. В типично приложение NestJS всяка логическа част от приложението ще живее в една и съща граница на домейн (модул). Такава настройка улеснява организирането на компоненти, където едно приложение ще има множество модули с тясно свързан набор от възможности.

Единично тестване

Автоматизираното тестване идва с много предимства. Процесът на поставяне на такива тестове обаче може да бъде много по-ангажиращ. NestJS има различни функции, за да помогне на екипите да изграждат и автоматизират тестове. Хубавото на NestJS е, че може да се използва с различни инструменти за тестване. Системата за инжектиране на зависимости на Nest е достъпна по време на тестването, за да се подиграва лесно с компоненти.

Агонист на база данни

Можете лесно да се интегрирате с всяка SQL или NoSQL база данни въз основа на вашите нужди и предпочитания, когато работите с NestJS. Свързването на NestJS към база данни е много лесно, тъй като просто трябва да заредите подходящ Node.js драйвер.

Поддръжка на различни библиотеки

NestJS е съвместим с различни инструменти, което ускорява разработката на приложения. Тази рамка поддържа регистриране, валидиране, кеширане, WebSockets, TypeORM, Mongoose и GraphQL без допълнителна конфигурация.

Архитектура и работен процес на NestJS

NestJS има 3-слоева архитектура, състояща се от контролери, доставчици и модули. По този начин разработчиците могат да създават чист код, който не се припокрива.

Източник на изображението: по-добро програмиране

Контролери

Контролерите в NestJS служат като мост между клиентските заявки и отговори. Механизмът за маршрутизиране винаги ще насочва заявката към подходящ контролер, когато се прави HTTP заявка. Рамката използва декоратори и класове за създаване на контролери. След това всеки клас метод се нанася на маршрути, за да получи конкретна заявка.

Доставчици

Доставчиците могат да бъдат описани като основите на NestJS. Доставчиците се инжектират като зависимости и създават връзки между различни обекти. Класове в NestJS, като помощници, услуги или хранилища, могат да се третират като доставчици, след като бъде добавен декораторът `@Injectable()`. Такива доставчици също могат да бъдат инжектирани в клас чрез конструктора и NestJS ще разреши зависимостите.

  Как да активирате новия стартов панел на Chrome OS на вашия Chromebook

Модули

Един модул в NestJS обединява тясно свързан набор от възможности. Всяко приложение NestJS има основен модул, използван като входна точка. Използването на множество модули е силно препоръчително, ако искате да имате организиран и лесен за четене код. Декораторът @Module() на Nest дефинира модул и също така предоставя информация като зависимости, контролери и доставчици, които да вървят с този модул.

Първи стъпки с NestJS

Уверете се, че Node.js и npm са инсталирани. Имате нужда от среда за изпълнение и Node.js е идеален за тази настройка. Имате нужда от версия >= 12, с изключение на v13. Можете да проверите дали имате инсталирани Node.js и npm чрез тези команди;

node -v
npm -v

Ако и двете са инсталирани, ще получите изход, близък до този

Ако ги нямате, инсталирайте ги от официалната страница. За щастие и Node.js, и npm са инсталирани заедно.

  • Инсталирайте Nest CLI. Използвайте следните команди, за да зададете CLI и проекта;
npm i -g @nestjs/cli
nest new project-name

Избираме името на проекта да бъде mynestapp за демонстрационни цели. NestJS ви дава възможност да работите или с Typescript, или с Vanilla JavaScript. Изберете какво ви подхожда и натиснете enter. След като приложението бъде скеле, файловата структура ще бъде настроена и папката „src“ ще се появи с няколко основни файла, както е показано на тази екранна снимка

  • Стартирайте приложението/вашият първи здравей свят

След като инсталацията приключи, изпълнете тези команди, за да стартирате сървъра за разработка

cd mynestapp
npm run start

Въведете http://localhost:3000/ в браузъра си и първото ви „Hello World“ на NestJs трябва да се покаже

NestJS: Предимства

  • Лесен за научаване. Лесно е да овладеете NestJS, особено ако сте от Angular или имате общи познания за JavaScript. Подробната документация също улеснява овладяването на работата с тази мощна рамка.
  • Гъвкав. Можете да изградите много неща с помощта на NestJS. Можете да създавате MVC приложения, GraphQL приложения, RESTful API и уеб сокети, като използвате тази рамка Node.js.
  • Предлага се с хиляди модули. Поддържаните от общността модули улесняват разработчиците да структурират различни функции, докато създават приложения от страна на сървъра.
  • Бързо развитие и добра архитектура. Не е нужно да създавате всичко от нулата, когато работите с NestJS. Същата рамка обаче има солидна архитектура, за да улесни разбирането на вашия код.

NestJS: Недостатъци

  • Не е благоприятно за тези с TypeScript и Angular фонове. NestJS заимства много от Angular архитектурата и на тези без такива познания може да им трябва време, за да разберат синтаксиса и структурата.
  • Липса в някои области. NestJS е все още млад и може да не се конкурира благоприятно с някои установени рамки, базирани на Python и GO.
  Как да споделите вашата презентация в PowerPoint

Компании, използващи NestJS

#1. Adidas

Adidas, производител на обувки и дизайнер, е сред компаниите, използващи NestJS. Удивителните характеристики на NestJS трябва да са привлекли този гигант на обувките да го използва в своя бекенд.

#2. Capgemini

Capgemini е френска мултинационална компания, която предлага консултации, технологии, аутсорсинг и професионални услуги. Тази компания използва NestJS в своя технологичен стек.

#3. Рош

Roche е мултинационална здравна компания, която има две подразделения; фармацевтика и диагностика. Roche използва NestJS като един от технологичните стекове на основния си уебсайт.

Ресурси за обучение

#1. NestJS Zero to Hero

NestJS Zero to Hero учи разработчиците как да създават и внедряват корпоративни back-end приложения с помощта на Typescript и Node.js. Курсът учи как да създавате API, оторизация и автентификация, модулно тестване на Nest приложения и TypeORM за взаимодействие с база данни, наред с много други неща.

#2. NestJS: Пълното ръководство за разработчици

Този курс учи разработчиците как да създават бекенд API с помощта на Nest, TypeScript и TypeORM. Това пълно ръководство съдържа всичко, от което се нуждаете, от настройката на кодирането на приложението NestJS, тестването и внедряването. Освен това ще получите задкулисно разбиране на уеб рамката NestJS.

#3. Овладейте NestJS

Master NestJS учи как да разработвате корпоративни приложения Node.js с помощта на TypeScript. Курсът преподава валидиране и сериализиране на данни, как работят JWT токените, как да използвате NestCLI и модерна абстракция на база данни, наред с много други неща.

#4. NestJs на практика (с MongoDB)

NestJS на практика учи всичко, което трябва да научите за NestJS, от модули, контролери, GuardsServices, канали и междинен софтуер. Курсът използва подход, базиран на проекти, при който кодирате и хоствате кода си в GitHub с zip файлове за изтегляне за всеки раздел.

#5. Nest.js: Прогресивна Node.js рамка

Тази книга запознава разработчиците с NestJS и как да използват JavaScript и TypeScript. Книгата е проектирана във формат с инструкции, за да гарантира, че можете да настроите и стартирате приложението си NestJS за нула време.

#6. Практически Nest.js: Разработвайте чисти MVC уеб приложения

Практическата книга Nest.js използва базиран на проекти подход за създаване на приложение за онлайн магазин, което използва различни функции на NestJS. Книгата включва кратки дискусии, съвети и полезни фрази при създаването на вашето NestJS приложение.

Заключение

Освен че е мощна Node.js рамка, NestJS е и една от най-популярните Typescript рамки за сървърни приложения днес. Фактът, че предлага най-добри практики за кодиране и стандартна архитектура за разработка, го накара да привлече много инженери, които искат да се съсредоточат върху изграждането на бизнес логика при изграждането на приложения.