Знайомство з 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, наприклад;

  • Складання проекту
  • Обслуговування проекту в режимі розробки
  • Створіть і об’єднайте програму для розповсюдження продукції

Модулярність

Кожен додаток NestJS має принаймні один модуль. Кореневий модуль є найпростішим. У типовому додатку NestJS кожна логічна частина додатка буде знаходитися в одній межі домену (модулі). Таке налаштування дозволяє легко організувати компоненти, де програма матиме кілька модулів із тісно пов’язаним набором можливостей.

  Що станеться, якщо ви забули свій пароль Amazon?

Модульне тестування

Автоматизоване тестування має багато переваг. Однак процес встановлення таких тестів може бути набагато складнішим. NestJS має різні функції, які допомагають командам створювати та автоматизувати тести. Перевагою NestJS є те, що його можна використовувати з різними інструментами тестування. Система впровадження залежностей Nest стає доступною під час тестування, щоб легко імітувати компоненти.

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

Ви можете легко інтегруватися з будь-якою базою даних SQL або NoSQL залежно від ваших потреб і вподобань під час роботи з NestJS. Підключити NestJS до бази даних дуже просто, оскільки вам потрібно лише завантажити відповідний драйвер Node.js.

Підтримка різних бібліотек

NestJS сумісний з різними інструментами, що прискорює розробку додатків. Цей фреймворк підтримує журналювання, перевірку, кешування, WebSockets, TypeORM, Mongoose та GraphQL без додаткових налаштувань.

Архітектура та робочий процес NestJS

NestJS має 3-рівневу архітектуру, яка складається з контролерів, провайдерів і модулів. Таким чином, розробники можуть створювати чистий код, який не перекривається.

Джерело зображення: betterprogramming

Контролери

Контролери в NestJS служать мостом між клієнтськими запитами та відповідями. Механізм маршрутизації завжди спрямовуватиме запит до відповідного контролера щоразу, коли робиться запит HTTP. Фреймворк використовує декоратори та класи для створення контролерів. Потім кожен метод класу відображається на маршрутах для отримання конкретного запиту.

Провайдери

Постачальники можна описати як основи NestJS. Постачальники впроваджуються як залежності та створюють зв’язки між різними об’єктами. Класи в NestJS, такі як допоміжні засоби, служби чи сховища, можуть розглядатися як постачальники після додавання декоратора `@Injectable()`. Такі постачальники також можуть бути введені в клас через конструктор, і NestJS вирішить залежності.

Модулі

Модуль у NestJS об’єднує тісно пов’язаний набір можливостей. Кожна програма NestJS має кореневий модуль, який використовується як точка входу. Використання кількох модулів є дуже доцільним, якщо ви хочете мати організований і легкий для читання код. Декоратор Nest `@Module()` визначає модуль, а також надає таку інформацію, як залежності, контролери та постачальники для цього модуля.

Початок роботи з NestJS

Переконайтеся, що встановлено Node.js і npm. Вам потрібне середовище виконання, і Node.js ідеально підходить для цього налаштування. Вам потрібна версія >= 12, за винятком v13. Ви можете перевірити, чи встановлено у вас Node.js і npm, за допомогою цих команд;

node -v
npm -v

Якщо обидва встановлені, ви отримаєте результат, близький до цього

  Сертифікація Microsoft Power BI Data Analyst (PL-300): як її отримати

Якщо у вас їх немає, встановіть їх з офіційної сторінки. На щастя, 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.

Компанії, що використовують NestJS

#1. Adidas

Adidas, виробник взуття та дизайнер, є однією з компаній, які використовують NestJS. Дивовижні функції NestJS, мабуть, привабили цього взуттєвого гіганта використовувати його на своїй серверній частині.

  Майнінг біткойнів для чайників: розуміння основ

#2. Capgemini

Capgemini — французька транснаціональна компанія, яка пропонує консалтингові, технологічні, аутсорсингові та професійні послуги. Ця компанія використовує NestJS у своєму технічному стеку.

#3. Роше

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

Навчальні ресурси

#1. NestJS від нуля до героя

NestJS Zero to Hero навчає розробників, як створювати та розгортати корпоративні серверні програми за допомогою 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.

Висновок

Крім того, що NestJS є потужним фреймворком Node.js, він також є одним із найпопулярніших фреймворків Typescript для серверних додатків сьогодні. Той факт, що він пропонує найкращі методи кодування та стандартну архітектуру розробки, привернув увагу багатьох інженерів, які хочуть зосередитися на побудові бізнес-логіки під час створення програм.