Введение в NestJS [+6 учебных ресурсов]
Опубликовано: 2023-01-06NestJS — это прогрессивная платформа Node.js для создания масштабируемых, эффективных и надежных серверных приложений.
NestJS был создан для устранения неорганизованных кодовых баз. Его модульная структура позволяет легко организовать код в различные модули.
NestJS построен на Typescript и использует ExpressJS под капотом. NestJS любят разработчики, которые хотят воспользоваться преимуществами проверки типов TypeScript. NestJS сочетает в себе различные аспекты функционального реактивного программирования (FRP), объектно-ориентированного программирования (ООП) и функционального программирования (FP).
Почему NestJS?
NestJS удобен для начинающих, поскольку имеет хорошую структуру и простые в использовании инструменты интерфейса командной строки (CLI). Таким образом, разработчики могут создать новую функцию с помощью одной команды, используя эту среду Node.js.
NestJS предоставляет модуль, сервис, контроллер и кучу тестов, чтобы вы могли начать работу. Вы также можете рассчитывать на множество доступных шаблонов и шаблонов, чтобы упростить процесс разработки.
Кривая обучения NestJS будет легкой для тех, кто знаком с циклами, синтаксисом и условиями в JavaScript и Angular.
Особенности NestJS
Построен на машинописном языке
NestJS построен на Typescript, верхнем индексе JavaScript. Typescript обеспечивает лучший опыт разработки, поскольку вам не нужно вручную проверять ошибки каждый раз, когда вы что-то меняете в коде. Typescript в основном предлагает все функции JavaScript, но также имеет некоторые дополнительные функции.
Контейнер внедрения зависимостей
Внедрение зависимостей отделяет инициализацию объектов, которые использует класс, от самого класса. В таком случае класс называется «клиент», а зависимости класса называются «сервисами». Этот встроенный DI в NestJS делает приложения более эффективными и модульными.
Мощный интерфейс командной строки (CLI)
Вы можете инициализировать, разрабатывать и поддерживать все свои приложения NestJS с помощью NestCLI. Есть много вещей, которые вы можете сделать с помощью интерфейса командной строки Nest, например;
- Подмости проекта
- Обслуживание проекта в режиме разработки
- Создайте и упакуйте приложение для распространения в рабочей среде
Модульность
Каждое приложение NestJS имеет как минимум один модуль. «Корневой» модуль является самым основным. В типичном приложении NestJS каждая логическая часть приложения будет находиться в одной и той же границе домена (модуле). Такой параметр позволяет легко организовать компоненты, в которых приложение будет иметь несколько модулей с тесно связанным набором возможностей.
Юнит-тестирование
Автоматизированное тестирование имеет множество преимуществ. Однако процесс постановки таких тестов может быть гораздо более сложным. NestJS имеет различные функции, помогающие командам создавать и автоматизировать тесты. Преимущество NestJS в том, что его можно использовать с различными инструментами тестирования. Система внедрения зависимостей Nest доступна во время тестирования, чтобы легко имитировать компоненты.
Агонизм базы данных
Вы можете легко интегрироваться с любой базой данных SQL или NoSQL в зависимости от ваших потребностей и предпочтений при работе с NestJS. Подключить NestJS к базе данных очень просто, так как вам просто нужно загрузить соответствующий драйвер Node.js.
Поддержка различных библиотек
NestJS совместим с различными инструментами, что ускоряет разработку приложений. Эта структура поддерживает ведение журнала, проверку, кэширование, WebSockets, TypeORM, Mongoose и GraphQL без дополнительной настройки.
Архитектура и рабочий процесс NestJS
NestJS имеет трехуровневую архитектуру, состоящую из контроллеров, провайдеров и модулей. Таким образом, разработчики могут создавать чистый код, который не перекрывается.
Контроллеры
Контроллеры в 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
Если оба установлены, вы получите вывод, близкий к этому
Если у вас их нет, установите через официальную страницу. К счастью, Node.js и npm установлены вместе.
- Установите интерфейс командной строки Nest. Используйте следующие команды для установки CLI и проекта;
npm i -g @nestjs/cli
nest new project-name
Мы выбрали название проекта mynestapp для демонстрационных целей. NestJS дает вам возможность работать либо с Typescript, либо с ванильным 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, производитель обуви и дизайнер, входит в число компаний, использующих NestJS. Удивительные возможности NestJS, должно быть, привлекли этого обувного гиганта, чтобы использовать его на своем бэкэнде.
№ 2. Капджемини
Capgemini — французская многонациональная компания, предлагающая консалтинг, технологии, аутсорсинг и профессиональные услуги. Эта компания использует NestJS в своем стеке технологий.
№3. Роше
«Рош» — многонациональная медицинская компания, состоящая из двух подразделений; фармацевтика и диагностика. 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 в кратчайшие сроки.
Предварительный просмотр | Продукт | Рейтинг | Цена | |
---|---|---|---|---|
Nest.js: прогрессивная платформа Node.js | $24,99 | Купить на Амазоне |
№ 6. Практический Nest.js: разработка чистых веб-приложений MVC
В практической книге Nest.js используется подход, основанный на проектах, для создания приложения интернет-магазина, использующего различные функции NestJS. Книга включает короткие обсуждения, советы и полезные фразы при создании приложения NestJS.
Предварительный просмотр | Продукт | Рейтинг | Цена | |
---|---|---|---|---|
Практический Nest.js: разработка чистых веб-приложений MVC | $16,99 | Купить на Амазоне |
Заключение
Помимо того, что это мощная среда Node.js, NestJS также является сегодня одной из самых популярных платформ Typescript для серверных приложений. Тот факт, что он предлагает передовые методы кодирования и стандартную архитектуру разработки, привлек к нему множество инженеров, которые хотят сосредоточиться на построении бизнес-логики при создании приложений.