Введение, что такое NestJS?
NestJS — это среда JavaScript для создания эффективных и масштабируемых серверных приложений. Он предлагает богатый набор функций, которые могут помочь разработчикам создавать надежный и удобный для сопровождения код.
Платформа позволяет разработчикам легко и быстро создавать микросервисы или монолитные приложения «все в одном». NestJS — это удивительный фреймворк, который легко освоить и использовать.
NestJS — основа для высокопроизводительных приложений
NestJS идеально подходит для создания крупномасштабных приложений. Его модульная конструкция позволяет легко разбить ваше приложение на более мелкие и более управляемые части. А поскольку NestJS основан на Express и Node.js, вы можете быть уверены, что ваши приложения будут работать быстро и надежно. Если вы не хотите использовать Express под капотом, вы можете заменить его, например, fastify.
3 ключевые особенности NestJS, которые делают его идеальным для создания реального производственного приложения
1. Поддержка TypeScript
Это означает, что вы можете создать свое приложение на TypeScript и использовать преимущества строгой типизации, аннотаций и многого другого.
Если вы еще не использовали TypeScript, это значительно улучшит вашу кодовую базу.
2. Экономия времени благодаря интерфейсу командной строки Nest
NestJS поставляется с мощным интерфейсом командной строки, который позволяет создавать для вас код и файлы с помощью коротких команд.
nest generate service database
или nest g s database
сгенерируют вам database.service.ts
в мгновение ока.
3. Библиотеки NodeJS
Поскольку NestJS построен с использованием NodeJS, мы можем использовать весь каталог библиотек NodeJS. Это дает NestJS большое преимущество.
NestJS упрощает разработку Node.js и делает ее более приятной для разработчиков
Чтобы показать вам, мы создадим простое приложение RESTful.
Во-первых, нам нужно начать с установки NestJS и создания нашего проекта.
$ npm i -g @nestjs/cli
$ nest new project-name
Наиболее релевантные файлы, которые вы видите здесь: main.ts
,app.controller.ts
, app.module.ts
,app.service.ts
.
main.ts — это точка входа вашего приложения NestJS, отвечающая за его запуск.
app.module.ts — это корневой модуль по умолчанию для вашего приложения NestJS. Он используется для регистрации всех корневых контроллеров, провайдеров, а также дополнительных модулей, которые также могут иметь свои собственные контроллеры и провайдеры.
app.service.ts – это созданная по умолчанию служба, которая не является необходимой в ее стандартной форме. Предполагается, что службы используются для доступа к данным и для выполнения задач, соответствующих определенной теме (например, AuthService, UserService).
app.controller.ts содержит маршруты вашего приложения.
Контроллер по умолчанию использует app.service.ts
,который автоматически внедряет Angular-подобный, чтобы получить значение, которое HTTP-сервер должен возвращать, если он получает запрос GET на '/'.< br /> Если вы запросите http://localhost:3000/, вы должны увидеть сообщение по умолчанию Hello World! (Сообщение указано в app.service.ts).
Теперь давайте добавим второй маршрут!
Этот маршрут должен вызывать метод sendMessage(message)
службы appService, а затем отвечать нашим указанным объектом.
Чтобы проверить это, нам нужно добавить метод sendMessage(message)
в наш AppService.
Теперь мы можем развернуть приложение NestJS с помощью команд
$ yarn start:dev
$ npm run start:dev
Пришло время протестировать нашу конечную точку RESTful, для этого я буду использовать Insomnia, потому что она мне нравится гораздо больше, чем Postman ¯\_(ツ)_/¯
И вуаля! Это работает просто отлично.
Заключение и ресурсы
Как видите, создать наш собственный первый RESTful-сервис было очень просто. NestJS предоставляет модули для подключения к базам данных, брокерам сообщений и т. д. Вы даже можете использовать встроенный модуль SMTP для отправки электронных писем. Если вам нужно больше контента, может быть, несколько подробных руководств, просто дайте мне знать.
Если вы хотите узнать что-то еще, вот вам:
- Официальные документы: https://docs.nestjs.com/
- Использование CLI: https://docs.nestjs.com/cli/overview
- Основы контроллера: https://docs.nestjs.com/controllers
- GraphQL + NestJS = ❤: https://docs.nestjs.com/graphql/quick-start
- Микросервисы MQTT: https://docs.nestjs.com/microservices/mqtt