Express или NestJS: что выбрать
Вопрос
Чем Express отличается от NestJS и когда ты бы выбрал каждый?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Express: минималистичная цепочка middleware, структура на совести команды
NestJS: модули, контроллеры, провайдеры, DI, декораторы, TypeScript
NestJS работает поверх Express или Fastify
Слои Nest: guards, pipes, interceptors, filters дают единые места для сквозной логики
Express: маленькие сервисы, прототипы, гибкость; Nest: большие команды и долгоживущие проекты
Цена Nest: порог входа, магия декораторов, больше кода
Что могут спросить следом
- Как в Express организовать проект, чтобы он не превратился в хаос?
- Что такое request scope в NestJS и чем он дорог?
- Когда стоит брать Fastify?
Разбор
Express это тонкий слой над node:http: роутинг и цепочка middleware. Как разложить код по папкам, где валидировать и как внедрять зависимости, решает команда. Это гибко и быстро на старте, но в большом проекте без договорённостей появляется хаос.
NestJS даёт архитектуру из коробки. Приложение делится на модули, в них контроллеры и провайдеры, а контейнер DI сам собирает зависимости. Для сквозной логики есть отдельные слои: guards для авторизации, pipes для валидации, interceptors для логирования и преобразования ответа, exception filters для ошибок. Под капотом Nest всё равно использует Express или Fastify.
Для маленького сервиса или прототипа я возьму Express или Fastify. Для продукта, где работает несколько человек и код будет жить годами, NestJS: единая структура, удобные тесты через подмену провайдеров. Цена: выше порог входа и больше шаблонного кода.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Как Express узнаёт обработчик ошибок
Следующий вопрос
Ошибки async-обработчиков в Express 5