Pytania rekrutacyjne NestJS (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu NestJS (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.W jakiej kolejności działają warstwy przetwarzania żądania w Nest?
- 2.Dlaczego uwierzytelnianie powinno być guardem, a nie middleware?
- 3.Do czego służy
ExecutionContext? - 4.Jak guard ról odczytuje role zadeklarowane na trasie?
- 5.Jak zarejestrować globalny guard, który może wstrzykiwać inne providery?
- 6.Co zwraca
intercept(context, next)w interceptorze? - 7.Jak interceptor może opakować każdą odpowiedź w
{ data: ... }? - 8.Jak interceptor może dodać timeout dla wolnych handlerów?
- 9.Jak napisać własny dekorator parametru, np.
@User()? - 10.Jak połączyć kilka dekoratorów w jeden, np. guardy i adnotacje Swaggera?
- 11.Kiedy użyć
useFactorydla providera? - 12.Do czego służy
useExisting? - 13.Dlaczego wstrzykiwać zależność „interfejsową” po tokenie, a nie po klasie?
- 14.Czym jest moduł dynamiczny?
- 15.Jaka jest zwyczajowa konwencja dla
forRoot,registeriforFeature? - 16.Jakie są trzy zakresy wstrzykiwania (injection scopes) w Nest?
- 17.Jaki jest efekt uboczny providera o zakresie REQUEST?
- 18.Jak rozwiązać cykliczną zależność między dwoma providerami?
- 19.Na co pozwala
ModuleRef? - 20.Który hook cyklu życia nadaje się do otwarcia połączenia, na którym inne moduły polegają przy starcie?
- 21.Jak walidować zagnieżdżone obiekty w DTO?
- 22.Jakie jest ryzyko używania encji bazy bezpośrednio jako DTO żądań?
- 23.Jak własna reguła walidacji może sprawdzić coś asynchronicznego, np. „e-mail nie jest zajęty”?
- 24.Po co pisać własny pipe zamiast
ValidationPipe? - 25.Na co pozwala
@Expose({ groups: ['admin'] })zClassSerializerInterceptor? - 26.Jak napisać globalny filtr, który formatuje wszystkie błędy jako problem details RFC 9457?
- 27.Gdzie tłumaczyć błędy bazy, np. naruszenia unikalności, na błędy HTTP?
- 28.Dlaczego filtry wyjątków mogą działać inaczej w mikroserwisach i HTTP?
- 29.Jak Passport wpisuje się w uwierzytelnianie w Nest?
- 30.Jak zaimplementować reguły dostępu drobniejsze niż role, np. „użytkownik edytuje tylko własne posty”?
- 31.Po co sprawdzać własność obiektu oprócz uwierzytelniania?
- 32.Jak wykonać kilka operacji TypeORM w jednej transakcji w Nest?
- 33.Dlaczego
synchronize: truew TypeORM jest niebezpieczne na produkcji? - 34.Jak schludnie trzymać szczegóły Prismy czy TypeORM poza logiką biznesową?
- 35.Jak cache'ować odpowiedzi GET w Nest?
- 36.Jak przenieść wolną pracę, np. wysyłanie e-maili, do kolejki w tle w Nest?
- 37.Co daje
@nestjs/event-emitter? - 38.Jak wysyłać przeglądarce aktualizacje na żywo przez HTTP w Nest?
- 39.Czym jest bramka WebSocket (gateway) w Nest?
- 40.Czym różnią się testy jednostkowe od e2e w projekcie Nest?
- 41.Dlaczego w teście e2e stosować te same globalne pipes i filtry co w
main.ts? - 42.Jak podmienić guarda w teście, żeby zasymulować uwierzytelnionego użytkownika?
- 43.Dlaczego kod repozytoriów warto testować na prawdziwej bazie w Dockerze?
- 44.Czym różni się
@MessagePatternod@EventPatternw mikroserwisach Nest? - 45.Jakie transporty mikroserwisów Nest obsługuje od razu?
- 46.Czym jest aplikacja hybrydowa w Nest?
- 47.Czym różni się GraphQL code-first od schema-first w Nest?
- 48.Co robi
@ResolveField()w resolverze GraphQL? - 49.Jak walidować zmienne środowiskowe przy starcie z
@nestjs/config? - 50.Jak uporządkować konfigurację w typowane przestrzenie nazw?
- 51.Jakie strategie wersjonowania API obsługuje Nest?
- 52.Co robi plugin CLI
@nestjs/swagger? - 53.Dlaczego przenieść aplikację Nest z Expressa na Fastify?
- 54.Jaki problem może spowodować „moduł wspólny”, który eksportuje wszystko?
- 55.Do czego służy monorepo (workspace) Nest?
- 56.Czym jest aplikacja standalone w Nest?
- 57.Jak odczytać bieżące ID żądania w głębokich serwisach bez przekazywania go przez każde wywołanie?
- 58.Jak włączyć łagodne zamykanie z health checkami w Kubernetes dla Nesta?
- 59.Czego NIE widzi middleware podpięty w
configure(consumer)? - 60.Jak wykluczyć niektóre trasy z middleware?
- 61.Co daje
@nestjs/cqrs? - 62.Jak kompresować odpowiedzi w Nest?
- 63.Co świadczy o tym, że kontroler Nest robi za dużo?
- 64.Jak ustawić nagłówki bezpieczeństwa w aplikacji Nest?
- 65.Co oferuje
@nestjs/scheduleoprócz@Cron? - 66.Jak logować każde żądanie z czasem trwania w Nest?
- 67.Dlaczego
ValidationPipedomyślnie może nie odrzucać nieznanych parametrów zapytania? - 68.Czego wymaga
@Controller({ path: 'users', version: '2' }), żeby działało? - 69.Jaki jest cel
nest buildz webpackiem lub SWC na produkcji? - 70.Po aktualizacji do NestJS 11 (Express 5) trasa
@Get('files/*')przestaje dopasowywać się jak wcześniej. Dlaczego? - 71.Dlaczego przy kilku instancjach domyślny magazyn throttlera daje złe limity?
- 72.Który wbudowany pipe odrzuca parametr trasy niebędący poprawnym UUID?
- 73.Kiedy przydają się moduły ładowane leniwie (
LazyModuleLoader)? - 74.Interceptory są podpięte globalnie, na kontrolerze i na trasie. W jakiej kolejności działa ich logika „po”?
- 75.Co robi
@Optional()na parametrze konstruktora?