В быстро развивающемся ландшафте веб-разработки для создания эффективных, масштабируемых и удобных в сопровождении приложений необходимо оставаться в курсе новейших технологий и сред. Одной из таких сред, получившей значительную популярность в последние годы, является NestJS. NestJS — это мощная, универсальная и проверенная среда Node.js, которая сочетает в себе элементы как традиционных серверных сред, так и современных архитектурных шаблонов, создавая знакомую и инновационную платформу. В этой статье мы всесторонне рассмотрим начало работы с NestJS.

Что такое NestJS?

NestJS — это прогрессивный веб-фреймворк, построенный на основе Node.js и TypeScript. Он черпает вдохновение из популярных фреймворков и парадигм программирования, таких как Angular, Express и Spring. Результатом этого уникального сочетания является структура, поощряющая использование высокомодульного и структурированного кода. Основные принципы NestJS:

  1. Модульность. NestJS продвигает использование модулей для инкапсуляции различных аспектов функциональности вашего приложения. Каждый модуль может иметь свои собственные контроллеры, сервисы и другие компоненты.
  2. Внедрение зависимостей. NestJS сильно зависит от внедрения зависимостей, что делает вашу кодовую базу более модульной и тестируемой. Этот шаблон позволяет вам легко управлять и внедрять зависимости в ваши компоненты.
  3. Архитектура MVC. NestJS следует архитектурному шаблону Model-View-Controller (MVC), упрощая разделение задач и поддержание четкой структуры проекта.
  4. Декораторы. Декораторы — это основная функция NestJS. Они позволяют легко определять и настраивать различные аспекты вашего приложения, такие как обработчики маршрутов, правила проверки и многое другое.
  5. TypeScript. NestJS построен с использованием TypeScript, надмножества JavaScript со статическими типами. TypeScript помогает обнаруживать ошибки во время компиляции и предоставляет лучшие инструменты для рефакторинга и поддержки баз кода.

Настройка вашего проекта NestJS

Начало работы с NestJS — простой процесс. Вот шаги по настройке вашего первого проекта NestJS:

Шаг 1: Установите зависимости

Чтобы создать новое приложение NestJS, на вашем компьютере должны быть установлены Node.js и npm (диспетчер пакетов Node). После их установки откройте терминал и выполните следующую команду, чтобы установить Nest CLI глобально:

npm install -g @nestjs/cli

Шаг 2: Создайте новый проект

Установив Nest CLI, вы можете создать новый проект, используя команду nest new, за которой следует имя вашего проекта. Например, чтобы создать проект с именем my-nest-app, запустите:

nest new my-nest-app

Эта команда создаст новое приложение NestJS в папке с именем «my-nest-app».

Шаг 3. Перейдите к своему проекту

Измените свой рабочий каталог на только что созданную папку проекта:

cd my-nest-app

Шаг 4: Запустите приложение

Чтобы запустить приложение NestJS в режиме разработки, используйте следующую команду:

npm run start:dev

Это запустит приложение, и по умолчанию оно будет доступно по адресу http://localhost:3000.

Изучение структуры проекта

Понимание структуры приложения NestJS необходимо для поддержания чистой и организованной кодовой базы. Вот обзор типичной структуры проекта, созданной Nest CLI:

  • src: Этот каталог содержит исходный код вашего приложения.
  • main.ts: точка входа вашего приложения. Он инициализирует приложение NestJS и запускает сервер.
  • app.module.ts: корневой модуль вашего приложения. Модули являются неотъемлемой частью NestJS и позволяют организовать и инкапсулировать различные части вашего кода.
  • app.controller.ts: пример контроллера, который обрабатывает входящие HTTP-запросы. Контроллеры получают запросы, обрабатывают их и возвращают ответы.
  • app.service.ts: пример службы, предоставляющей бизнес-логику для приложения. Службы отвечают за обработку данных и другие операции.
  • test: Этот каталог предназначен для ваших модульных и интеграционных тестов.

Создание контроллеров и сервисов

В NestJS контроллеры и службы работают вместе для обработки входящих запросов и управления бизнес-логикой. Давайте создадим простой контроллер и сервис, чтобы увидеть, как это работает:

Шаг 1: Создайте контроллер

Используйте следующую команду для создания нового контроллера:

nest generate controller cats

Это создаст файл cats.controller.ts в каталоге src/cats.

Шаг 2: Определите маршруты и обработчики

Откройте файл cats.controller.ts и определите маршруты с помощью декораторов:

import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

Шаг 3: Создайте сервис

Создайте сервис для обработки бизнес-логики, связанной с кошками:

nest generate service cats

Это создаст файл cats.service.ts в каталоге src/cats.

Шаг 4: Реализуйте логику службы

Откройте файл cats.service.ts и реализуйте простой метод:

import { Injectable } from '@nestjs/common';

@Injectable()
export class CatsService {
  findAll(): string {
    return 'This action returns all cats';
  }
}

Шаг 5: Используйте службу в контроллере

Вставьте CatsService в CatsController и используйте его для обработки логики:

import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';

@Controller('cats')
export class CatsController {
  constructor(private readonly catsService: CatsService) {}

  @Get()
  findAll(): string {
    return this.catsService.findAll();
  }
}

Заключение

NestJS предоставляет мощный и структурированный подход к созданию серверных приложений с помощью Node.js. Сочетание модулей, внедрения зависимостей, декораторов и TypeScript создает процесс разработки, который одновременно эффективен и удобен в сопровождении. Выполнив шаги, описанные в этой статье, вы изучили основы настройки проекта NestJS, поняли структуру проекта и создали контроллеры и сервисы.

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

Спасибо, что дочитали до конца. Пожалуйста, следите за автором и этой публикацией. Посетите Stackademic, чтобы узнать больше о том, как мы демократизируем бесплатное обучение программированию по всему миру.