Interviewfragen zu Node.js (Senior) mit Antworten

75 Fragen fürs Vorstellungsgespräch zu Node.js (Senior) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.

Diesen Test machen
  1. 1.Wie ist der Heap von V8 für die Garbage Collection organisiert?
  2. 2.Ein Container hat 2 GB Speicher, aber der Node.js-Prozess stürzt bei etwa 1,4 GB mit „JavaScript heap out of memory“ ab. Was sollte man prüfen?
  3. 3.Welches Muster ist eine klassische Ursache für ein Speicherleck in einem Node.js-Server?
  4. 4.Wie findet man, was in einem Node.js-Prozess leakt?
  5. 5.Warum kann eine Closure unerwartet Speicher festhalten?
  6. 6.Was sind Hidden Classes (Shapes) in V8, und warum sind sie wichtig?
  7. 7.Was meldet process.memoryUsage() als rss?
  8. 8.Wofür sind WeakRef und FinalizationRegistry NICHT geeignet?
  9. 9.Wie findet man unter produktionsnahen Bedingungen, welche Funktionen die meiste CPU nutzen?
  10. 10.Die p99-Latenz ist hoch, aber die durchschnittliche CPU-Auslastung niedrig. Was könnte die Ursache sein?
  11. 11.Was ist eine typische Ursache dafür, dass ein langsamer regulärer Ausdruck einen Node.js-Server blockiert (ReDoS)?
  12. 12.Warum kann JSON.stringify einer großen Antwort ein Engpass sein, und was hilft?
  13. 13.Wann hilft es tatsächlich, UV_THREADPOOL_SIZE zu erhöhen?
  14. 14.Warum kann dns.lookup ein versteckter Engpass für ausgehende HTTP-Aufrufe sein?
  15. 15.Wie teilt man große Binärdaten zwischen Worker Threads, ohne sie zu kopieren?
  16. 16.Warum sollte ein Server einen Pool von Worker Threads nutzen, statt pro Anfrage einen neuen Worker zu erzeugen?
  17. 17.Hinter einem Load Balancer (z. B. AWS ALB mit 60 s Idle Timeout) bekommen Clients manchmal 502-Fehler. Was ist eine häufige Ursache?
  18. 18.Warum wird server.close() beim sauberen Herunterfahren eventuell nicht fertig?
  19. 19.Wie sollte ein Server die Größe eingehender Request-Bodies begrenzen?
  20. 20.Wovor schützt server.requestTimeout?
  21. 21.Was ändert HTTP/2 für eine Node.js-API, die Browser nutzen?
  22. 22.Was ist undici in Node.js?
  23. 23.Was bringt ein asynchroner Generator in pipeline?
  24. 24.Was steuert highWaterMark?
  25. 25.Wie arbeiten Node.js-Streams mit Web Streams (ReadableStream) zusammen?
  26. 26.Beim Verarbeiten eines Upload-Streams rufst du für jedes Stück eine asynchrone Funktion auf, ohne zu warten. Was ist das Risiko?
  27. 27.Was ist Prototype Pollution?
  28. 28.Wie liefert man eine vom Nutzer angeforderte Datei aus einem Verzeichnis uploads sicher aus?
  29. 29.Deine API ruft eine vom Nutzer gelieferte URL ab (z. B. für Link-Vorschauen). Welchen Angriff musst du verhindern?
  30. 30.Was macht das Berechtigungsmodell von Node.js (--permission)?
  31. 31.Welche Maßnahme hilft am meisten gegen bösartige Paketversionen (Supply-Chain-Angriffe)?
  32. 32.Warum ist eval (oder new Function) auf Nutzereingaben selbst in einer „Sandbox“ wie vm gefährlich?
  33. 33.Vor welchem Problem auf HTTP-Ebene sollte man eine Node.js-API außer Anwendungsbugs schützen?
  34. 34.Warum sollte ein Node.js-Prozess im Container als Nutzer ohne root laufen?
  35. 35.Warum ergänzt man exponentielles Backoff beim Wiederholen fehlgeschlagener Aufrufe um zufälligen Jitter?
  36. 36.Was macht ein Circuit Breaker?
  37. 37.Welches Problem löst das Transactional-Outbox-Muster?
  38. 38.Eine Message Queue stellt Nachrichten „at least once“ zu. Was müssen Konsumenten tun?
  39. 39.Was ist ein Cache Stampede, und wie verhindert man ihn?
  40. 40.Welcher Rate-Limiting-Algorithmus erlaubt kurze Bursts und hält trotzdem eine durchschnittliche Rate?
  41. 41.Warum sollte lang laufende oder CPU-lastige Arbeit aus dem Pfad der HTTP-Anfrage heraus?
  42. 42.Wie verhindert man, dass eine langsame Abhängigkeit den ganzen Dienst lahmlegt (Bulkhead-Muster)?
  43. 43.Warum wählt ein Team für ein neues Node.js-Produkt eventuell einen modularen Monolithen statt Microservices?
  44. 44.Was bietet OpenTelemetry für Node.js-Dienste?
  45. 45.Welche Metriken bilden die RED-Methode zur Überwachung eines Dienstes?
  46. 46.Wofür ist diagnostics_channel da?
  47. 47.Was ist ein Diagnosebericht (--report-on-fatalerror, process.report.writeReport())?
  48. 48.Ein Node.js-Prozess endet nicht, nachdem das Hauptskript fertig ist. Was ist der übliche Grund?
  49. 49.Warum ist uncaughtException + „loggen und weitermachen“ ein schlechtes Muster?
  50. 50.Was erlauben Hooks zur Modulanpassung (module.register, registerHooks)?
  51. 51.Was ist das „Dual Package Hazard“?
  52. 52.Was ist Node-API (N-API)?
  53. 53.Was sind Single Executable Applications (SEA) in Node.js?
  54. 54.Was bringt die Deklaration using (Explicit Resource Management) für Node.js-Code?
  55. 55.Wie behandelt Node.js enum und namespace, wenn es TypeScript mit Type Stripping ausführt?
  56. 56.Warum ist Testisolation bei node --test wichtig, und wie funktioniert sie standardmäßig?
  57. 57.Wofür ist Snapshot-Startup (--build-snapshot) nützlich?
  58. 58.Sollte man beim Betrieb von Node.js in Kubernetes in jedem Pod das Modul cluster nutzen?
  59. 59.Warum sollte ein horizontal skalierter Node.js-Dienst zustandslos sein?
  60. 60.Was ist der Hauptkompromiss zwischen Round-Robin von cluster und der Verteilung der Verbindungen durch das Betriebssystem?
  61. 61.Wie verhindert man, dass ein Mandant oder Client eine geteilte Node.js-API erschöpft?
  62. 62.Dein Dienst muss pro Anfrage drei APIs aufrufen und kann den Ausfall einer verkraften. Welcher Ansatz passt?
  63. 63.Wie löst DataLoader das N+1-Problem in einem GraphQL-Server?
  64. 64.Wann passt gRPC gut im Vergleich zu REST/JSON?
  65. 65.Wie machen Idempotency Keys POST-Anfragen sicher wiederholbar?
  66. 66.Wie entwickelt man eine öffentliche API weiter, ohne bestehende Clients zu brechen?
  67. 67.Warum braucht ein Node.js-Prozess eine Strategie für SIGINT/SIGTERM, wenn er im Container als PID 1 läuft?
  68. 68.Wie führt man in einem Node.js-Dienst mit mehreren Instanzen geplante Aufgaben (Cron) vernünftig aus?
  69. 69.Warum kann AsyncLocalStorage in manchen Bibliotheken seinen Kontext verlieren, und was behebt das?
  70. 70.Der Client trennt die Verbindung, während dein Handler eine langsame Datenbankabfrage ausführt. Wie vermeidet man verschwendete Arbeit?
  71. 71.Du skalierst auf 40 Instanzen mit je einem Pool von 20 Verbindungen, und PostgreSQL lehnt Verbindungen ab. Was hilft?
  72. 72.Zwei Anfragen lesen gleichzeitig einen Datensatz, ändern ihn und speichern, und ein Update geht verloren. Wie verhindert optimistisches Locking das?
  73. 73.Was bedeutet Load Shedding für einen überlasteten Node.js-Dienst?
  74. 74.Wie deployt man eine neue Version einer Node.js-API, ohne Anfragen zu verlieren?
  75. 75.Ein Dienst macht schwere Bild- oder Videoverarbeitung. Welcher Ansatz ist in einem Node.js-Stack am sinnvollsten?