Что такое NestJS
NestJS — фреймворк для серверных приложений на Node.js и TypeScript. Он задаёт строгую структуру проекта: код делится на модули, контроллеры и сервисы, а связывает их сам фреймворк. Курс написан для NestJS 11.
NestJS и Express
Express — маленькая библиотека: она принимает HTTP-запросы и вызывает ваши функции, но не говорит, как раскладывать код по файлам. В большом проекте каждая команда придумывает свою структуру.
NestJS работает поверх Express (в версии 11 — поверх Express 5). Запросы по-прежнему принимает Express, а NestJS добавляет правила организации кода и готовые решения для типовых задач.
| Express | NestJS | |
|---|---|---|
| Язык | JavaScript или TypeScript | TypeScript |
| Структура проекта | Любая | Модули, контроллеры, сервисы |
| Маршруты | 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 будут понятны.