Питання на співбесіді з NestJS (Middle) з відповідями
75 запитань для співбесіди з теми NestJS (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.У якому порядку виконуються шари обробки запиту в Nest?
- 2.Чому автентифікацію варто робити guard-ом, а не middleware?
- 3.Для чого
ExecutionContext? - 4.Як guard ролей читає ролі, оголошені на маршруті?
- 5.Як зареєструвати глобальний guard, який може впроваджувати інші провайдери?
- 6.Що повертає
intercept(context, next)у interceptor? - 7.Як interceptor може обгорнути кожну відповідь у
{ data: ... }? - 8.Як interceptor може додати таймаут для повільних обробників?
- 9.Як написати власний декоратор параметра на кшталт
@User()? - 10.Як поєднати кілька декораторів в один, наприклад guards і анотації Swagger?
- 11.Коли варто використовувати
useFactoryдля провайдера? - 12.Для чого
useExisting? - 13.Навіщо впроваджувати залежність-«інтерфейс» за токеном, а не за класом?
- 14.Що таке динамічний модуль?
- 15.Яка звична домовленість щодо
forRoot,registerіforFeature? - 16.Які три області впровадження (injection scopes) є в Nest?
- 17.Який побічний ефект має провайдер з областю REQUEST?
- 18.Як розв'язати циклічну залежність між двома провайдерами?
- 19.Що дозволяє
ModuleRef? - 20.Який хук життєвого циклу підходить, щоб відкрити з'єднання, на яке покладаються інші модулі під час запуску?
- 21.Як перевіряти вкладені об'єкти в DTO?
- 22.Чим ризиковано використовувати сутності бази напряму як DTO запиту?
- 23.Як власне правило валідації може перевірити щось асинхронне, наприклад «email не зайнятий»?
- 24.Навіщо писати власний pipe замість
ValidationPipe? - 25.Що дозволяє
@Expose({ groups: ['admin'] })зClassSerializerInterceptor? - 26.Як написати глобальний фільтр, що форматує всі помилки як RFC 9457 problem details?
- 27.Де варто перетворювати помилки бази, як-от порушення унікальності, на HTTP-помилки?
- 28.Чому фільтри винятків можуть поводитися по-різному в мікросервісах і HTTP?
- 29.Як Passport вписується в автентифікацію Nest?
- 30.Як реалізувати правила доступу, тонші за ролі, наприклад «користувач редагує лише власні пости»?
- 31.Навіщо перевіряти власника об'єкта на додачу до автентифікації?
- 32.Як виконати кілька операцій TypeORM в одній транзакції в Nest?
- 33.Чим небезпечний
synchronize: trueу TypeORM у продакшені? - 34.Як охайно тримати деталі Prisma чи TypeORM поза бізнес-логікою?
- 35.Як кешувати відповіді GET у Nest?
- 36.Як винести повільну роботу, наприклад надсилання листів, у фонову чергу в Nest?
- 37.Що надає
@nestjs/event-emitter? - 38.Як надсилати браузеру оновлення наживо через HTTP у Nest?
- 39.Що таке WebSocket-шлюз (gateway) у Nest?
- 40.Чим юніт-тести відрізняються від e2e-тестів у Nest-проєкті?
- 41.Навіщо в e2e-тесті застосовувати ті самі глобальні pipes і фільтри, що в
main.ts? - 42.Як підмінити guard у тесті, щоб імітувати автентифікованого користувача?
- 43.Чому корисно тестувати код репозиторіїв на справжній базі в Docker?
- 44.Чим
@MessagePatternвідрізняється від@EventPatternу мікросервісах Nest? - 45.Які транспорти мікросервісів Nest підтримує з коробки?
- 46.Що таке гібридний застосунок у Nest?
- 47.Чим відрізняються code-first і schema-first GraphQL у Nest?
- 48.Що робить
@ResolveField()у GraphQL-резолвері? - 49.Як перевіряти змінні середовища під час запуску через
@nestjs/config? - 50.Як організувати конфігурацію в типізовані простори імен?
- 51.Які стратегії версіонування API підтримує Nest?
- 52.Що робить CLI-плагін
@nestjs/swagger? - 53.Навіщо переводити Nest-застосунок з Express на Fastify?
- 54.Яку проблему може спричинити «спільний модуль», що експортує все?
- 55.Для чого монорепозиторій (workspace) Nest?
- 56.Що таке standalone-застосунок Nest?
- 57.Як прочитати поточний ID запиту в глибоких сервісах, не передаючи його через кожен виклик?
- 58.Як увімкнути коректну зупинку з перевірками стану в Kubernetes для Nest?
- 59.Чого НЕ бачить middleware, прив'язаний у
configure(consumer)? - 60.Як виключити деякі маршрути з middleware?
- 61.Що надає
@nestjs/cqrs? - 62.Як стискати відповіді в Nest?
- 63.Що свідчить, що Nest-контролер робить забагато?
- 64.Як задати заголовки безпеки в Nest-застосунку?
- 65.Що пропонує
@nestjs/scheduleокрім@Cron? - 66.Як логувати кожен запит із часом виконання в Nest?
- 67.Чому
ValidationPipeза замовчуванням може не відхиляти невідомі параметри запиту? - 68.Що потрібно, щоб працював
@Controller({ path: 'users', version: '2' })? - 69.Яке призначення
nest buildз webpack чи SWC для продакшену? - 70.Після оновлення до NestJS 11 (Express 5) маршрут
@Get('files/*')перестає збігатися як раніше. Чому? - 71.Чому сховище throttler за замовчуванням дає неправильні ліміти, коли інстансів кілька?
- 72.Який вбудований pipe відхиляє параметр маршруту, що не є коректним UUID?
- 73.Коли корисні модулі з лінивим завантаженням (
LazyModuleLoader)? - 74.Interceptors прив'язані глобально, на контролері й на маршруті. У якому порядку виконується їхня логіка «після»?
- 75.Що робить
@Optional()на параметрі конструктора?