Pytania rekrutacyjne Node.js (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu Node.js (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Która lista pokazuje główne fazy event loop w Node.js we właściwej kolejności?
- 2.W jakiej kolejności pojawi się wynik?
- 3.Co wykona się pierwsze wewnątrz callbacku I/O (np. w
fs.readFile)? - 4.Dlaczego rekurencyjne wywołania
process.nextTickmogą być niebezpieczne? - 5.Co domyślnie obsługuje pula wątków libuv?
- 6.Handler żądania przez 2 sekundy wykonuje pętlę mocno obciążającą CPU. Co dzieje się z innymi żądaniami?
- 7.Co z poniższych może zablokować event loop?
- 8.Jak zmierzyć, jak bardzo zajęty jest event loop?
- 9.Co robi
timer.unref()? - 10.Co robi
await setTimeout(1000)zaimportowane znode:timers/promises? - 11.Dlaczego wysyłać plik 2 GB strumieniem, a nie przez
readFile? - 12.Jakie są cztery podstawowe typy strumieni w Node.js?
- 13.Czym jest backpressure w strumieniach?
- 14.Dlaczego
stream.pipeline()jest lepszy niż łańcuch.pipe()? - 15.Jak czytać strumień readable linia po linii lub kawałek po kawałku przez
async/await? - 16.Czym jest
Buffer? - 17.Czym różni się
Buffer.alloc(10)odBuffer.allocUnsafe(10)? - 18.Co zwróci
Buffer.from("привіт").length? - 19.Czym jest
objectModew strumieniach? - 20.Jak skompresować plik gzipem przy użyciu strumieni?
- 21.Co się stanie, gdy
EventEmitterwyemitujeerror, a nie ma listeneraerror? - 22.Na co zwykle wskazuje ostrzeżenie
MaxListenersExceededWarning? - 23.Jak poczekać na jedno zdarzenie jako promise?
- 24.Czym różnią się błędy operacyjne od błędów programisty?
- 25.Po co przekazywać
causeprzy ponownym rzucaniu błędu? - 26.Do czego w Node.js służy
AbortController? - 27.Dlaczego każde wychodzące żądanie HTTP powinno mieć timeout?
- 28.Jak zdefiniować middleware obsługujące błędy w Express?
- 29.Co zmieniło się w Express 5 dla handlerów tras
async? - 30.Czy kolejność wywołań
app.use()w Express ma znaczenie? - 31.Do czego służy
express.Router()? - 32.Jaka jest kluczowa cecha Fastify w porównaniu z Express?
- 33.Po co walidować dane wejściowe na serwerze, skoro frontend już je sprawdza?
- 34.Które metody HTTP są z definicji idempotentne?
- 35.Jak dobrze zwracać błędy API w spójnym formacie?
- 36.Jak serwować folder plików statycznych w Express?
- 37.Jak należy przechowywać hasła?
- 38.Co gwarantuje podpis JWT?
- 39.Jaka jest częsta wada JWT w porównaniu z sesjami po stronie serwera?
- 40.Które atrybuty ciasteczka pomagają chronić ciasteczko sesji?
- 41.Dlaczego zapytania SQL muszą używać parametrów zamiast sklejania stringów?
- 42.Co robi middleware
helmet? - 43.Po co limitować żądania do endpointu logowania?
- 44.Jak wygenerować kryptograficznie bezpieczny losowy token?
- 45.Jak porównywać sekretny token z żądania z zapisanym?
- 46.Po co aplikacje Node.js używają puli połączeń z bazą danych?
- 47.Czym jest problem N+1 zapytań?
- 48.Kiedy potrzebna jest transakcja w bazie danych?
- 49.Czym jest ORM, np. Prisma albo TypeORM?
- 50.Która funkcja Node.js pozwala używać SQLite bez instalowania pakietu?
- 51.Do czego służą worker threads?
- 52.Czym różni się
child_process.execodchild_process.spawn? - 53.Co robi
child_process.fork()? - 54.Co robi moduł
cluster? - 55.Jak zamockować funkcję we wbudowanym test runnerze?
- 56.Jak przetestować endpointy aplikacji Express bez uruchamiania prawdziwego serwera na stałym porcie?
- 57.Która funkcja
node:assertporównuje obiekty po zawartości? - 58.Co The Twelve-Factor App zaleca w sprawie konfiguracji?
- 59.Co powinien zrobić serwer Node.js po otrzymaniu
SIGTERM? - 60.Po co w logach ID żądania?
- 61.Jakich danych nigdy nie wolno zapisywać w logach?
- 62.Dlaczego w Dockerfile aplikacji Node.js kopiuje się
package.jsoni lock file przed kodem źródłowym? - 63.Do czego służy endpoint health check, np.
/health? - 64.Co robi pole
exportswpackage.json? - 65.Czy kod CommonJS w nowoczesnym Node.js może zrobić
require()modułu ES? - 66.Co wyraża pole
engineswpackage.json? - 67.Czym są npm workspaces?
- 68.Jakie ryzyko niosą skrypty
postinstallw zależnościach? - 69.Kiedy Server-Sent Events (SSE) są lepsze niż WebSockety?
- 70.Jakie wyzwanie niosą WebSockety przy kilku instancjach serwera?
- 71.Po co kolejka zadań, np. BullMQ, do wysyłania e-maili po rejestracji?
- 72.Do czego służy
AsyncLocalStorage? - 73.Dlaczego HTTP keep-alive ma znaczenie dla serwisu, który często wywołuje inne API?
- 74.Dlaczego dla dużych tabel paginacja kursorem jest często lepsza niż
OFFSET? - 75.Czym jest wzorzec cache-aside z Redisem?