Вопросы по Nest.js

Что такое NestJS?

NestJS — это прогрессивный фреймворк для создания серверных приложений на Node.js. Он основан на TypeScript и поддерживает современные принципы разработки, такие как модульность, инъекция зависимостей и использование паттернов проектирования, таких как MVC (Model-View-Controller).

Основные особенности NestJS:

  1. Модульность: NestJS использует модульную архитектуру, что позволяет разделять приложение на самодостаточные модули. Это улучшает организацию кода и его тестируемость.
  2. Инъекция зависимостей: Framework поддерживает инъекцию зависимостей, что позволяет легко управлять зависимостями между компонентами приложения, улучшая тем самым тестируемость и поддерживаемость.
  3. Поддержка Microservices: NestJS предоставляет возможности для создания микросервисов, что позволяет индивидуально разрабатывать и масштабировать компоненты приложения.
  4. Современен и модерен: NestJS строится на популярных библиотеках, таких как Express и Fastify, и использует TypeScript, что делает разработку более безопасной и предсказуемой.

Пример приложения на NestJS

Вот простой пример приложения на NestJS, которое создает REST API для управления задачами.

  1. Установка NestJS CLI:
npm i -g @nestjs/cli
  1. Создание нового проекта:
nestjs new project-name
  1. Создание контроллера:

Для начала создадим контроллер для управления задачами. Выполните команду:

nest generate controller tasks

Это создаст файл tasks.controller.ts с базовой структурой.

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

@Controller('tasks')
export class TasksController {
  private tasks = [];

  @Get()
  getAllTasks() {
    return this.tasks;
  }

  @Post()
  createTask(@Body() task) {
    this.tasks.push(task);
    return task;
  }
}
  1. Создание модуля:

Теперь нужно создать модуль:

nest generate module tasks

В результате будет создан файл tasks.module.ts. Импортируйте контроллер в модуль:

import { Module } from '@nestjs/common';
import { TasksController } from './tasks.controller';

@Module({
  controllers: [TasksController],
})
export class TasksModule {}
  1. Обновление основного модуля приложения:

Теперь необходимо импортировать созданный модуль в основном модуле приложения (обычно это app.module.ts).

import { Module } from '@nestjs/common';
import { TasksModule } from './tasks/tasks.module';

@Module({
  imports: [TasksModule],
})
export class AppModule {}
  1. Запуск приложения:

Теперь можно запустить сервер с помощью команды:

npm run start

Ваше приложение теперь готово к работе, и вы сможете получать все задачи по адресу http://localhost:3000/tasks и добавлять задачи с помощью POST-запроса на тот же адрес.

Заключение

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