Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Что такое NestJS

NestJS — фреймворк для серверных приложений на Node.js и TypeScript. Он задаёт строгую структуру проекта: код делится на модули, контроллеры и сервисы, а связывает их сам фреймворк. Курс написан для NestJS 11.

NestJS и Express

Express — маленькая библиотека: она принимает HTTP-запросы и вызывает ваши функции, но не говорит, как раскладывать код по файлам. В большом проекте каждая команда придумывает свою структуру.

NestJS работает поверх Express (в версии 11 — поверх Express 5). Запросы по-прежнему принимает Express, а NestJS добавляет правила организации кода и готовые решения для типовых задач.

ExpressNestJS
ЯзыкJavaScript или TypeScriptTypeScript
Структура проектаЛюбаяМодули, контроллеры, сервисы
Маршрутыapp.get('/posts', ...)Методы класса с декоратором @Get()
Проверка данныхОтдельные библиотекиВстроенные пайпы
Связь частейРучной import и передача объектовВнедрение зависимостей

Вместо Express можно подключить Fastify, но в курсе используется Express — он стоит по умолчанию.

Как выглядит код

Обработчик запроса в NestJS — метод класса:

// src/posts/posts.controller.ts
import { Controller, Get } from '@nestjs/common';
 
@Controller('posts')
export class PostsController {
  @Get()
  findAll() {
    return [{ id: 1, title: 'Первая статья' }];
  }
}

Запрос GET /posts вызовет метод findAll(), а NestJS превратит возвращённый массив в JSON. Строки со знаком @ — декораторы; о них подробно рассказано в уроке о создании проекта.

Что понадобится

  • Node.js 20 или новее (лучше 22) и npm.
  • Знание JavaScript: классы, модули, async/await.
  • Основы TypeScript: типы параметров и свойств. Код курса не использует сложных типов.

Проверьте версии в терминале:

node -v
npm -v

Что будем строить

Через весь курс проходит один пример — API блога. Это сервер без HTML-страниц: он принимает и отдаёт JSON. В нём будут статьи (posts), комментарии (comments) и пользователи (users), вход по токену, роли, загрузка картинок, документация и тесты.

Частая ошибка

NestJS не заменяет знание Node.js и Express. Когда что-то идёт не так, под декораторами работают обычные объекты запроса и ответа Express. Если вы не понимаете, что такое промежуточный обработчик или код ответа 404, сначала пройдите основы Node.js и Express — тогда ошибки NestJS будут понятны.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.