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