Interviewfragen zu Node.js mit Antworten
Event Loop und Asynchronität, Module, Streams und Buffer, Dateisystem und HTTP, Express und Fastify, Sicherheit, Worker Threads und Skalierung von Node.js-Diensten.
225 Fragen fürs Vorstellungsgespräch zu Node.js mit Antworten und Erklärungen: Level Junior, Middle und Senior. Beispielfragen, Online-Tests und Programmieraufgaben.
- Event loop
- Streams
- Express
- Security
- Worker threads
Fragen nach Level
Junior
Grundbegriffe und Syntax · 50 Fragen
Middle
Praxis, Feinheiten und Optimierung · 50 Fragen
Senior
Architektur, Interna, Randfälle · 50 Fragen
Beispielfragen
Ein paar Fragen aus jedem Level mit richtiger Antwort und Erklärung.
Node.js · Junior
- Was ist Node.js?
Antwort zeigen
Richtige Antwort: Eine JavaScript-Laufzeit, gebaut auf der Engine V8
Node.js nimmt die Engine V8 aus Chrome und ergänzt APIs für Dateisystem, Netzwerk, Prozesse und mehr. Man nutzt es für Server, CLIs, Build-Werkzeuge und Skripte.
- Welche JavaScript-Engine nutzt Node.js?
Antwort zeigen
Richtige Antwort: V8
V8 ist die Engine von Google, die auch Chrome nutzt. SpiderMonkey treibt Firefox an und JavaScriptCore Safari. Andere Laufzeiten wie Bun nutzen JavaScriptCore.
- Welches Modell nutzt Node.js, um viele Verbindungen gleichzeitig zu bedienen?
Antwort zeigen
Richtige Antwort: Eine Event Loop in einem Thread mit nicht blockierendem I/O
JavaScript läuft in einem Hauptthread. I/O wie Dateien lesen oder Netzwerkaufrufe wird an das System und libuv abgegeben, und der Callback läuft später, sodass ein Prozess Tausende Verbindungen bedienen kann.
- Was davon ist in Node.js standardmäßig NICHT verfügbar?
Antwort zeigen
Richtige Antwort:
documentund das DOMIn Node.js gibt es keine Seite, also weder
documentnochwindow. Stattdessen bietet Node.js Module wiefs,httpundprocess. Timer undconsolegibt es in beiden Umgebungen.
Node.js · Middle
- Welche Liste zeigt die Hauptphasen der Event Loop von Node.js in der richtigen Reihenfolge?
Antwort zeigen
Richtige Antwort: timers → pending callbacks → poll → check → close callbacks
Timers führt Callbacks von
setTimeout/setIntervalaus, poll wartet auf I/O-Callbacks und führt sie aus, check führtsetImmediateaus, close dieclose-Events. Einen Render-Schritt gibt es nicht: das ist ein Browserkonzept. - Warum können rekursive Aufrufe von
process.nextTickgefährlich sein?Antwort zeigen
Richtige Antwort: Die Warteschlange wird erst ganz geleert, endlose Ticks lassen also I/O verhungern
Dasselbe gilt für eine endlose Kette von Microtasks.
setImmediatelässt die Event Loop zwischen den Iterationen I/O verarbeiten. - Was bearbeitet der Thread-Pool von libuv standardmäßig?
Antwort zeigen
Richtige Antwort: Dateisystemarbeit,
dns.lookup, Teile voncryptoundzlibNetzwerk-Sockets nutzen die asynchronen Mechanismen des Betriebssystems (epoll, kqueue, IOCP) und brauchen den Pool nicht. Der Pool hat standardmäßig 4 Threads, einstellbar mit
UV_THREADPOOL_SIZE. - Ein Request-Handler führt 2 Sekunden lang eine CPU-lastige Schleife aus. Was passiert mit anderen Anfragen?
Antwort zeigen
Richtige Antwort: Sie warten, da die Event Loop nichts anderes bearbeiten kann
Verlagere schwere CPU-Arbeit in
worker_threads, einen eigenen Dienst oder eine Job-Queue, oder teile sie in kleine Stücke mitsetImmediatedazwischen.
Node.js · Senior
- Wie ist der Heap von V8 für die Garbage Collection organisiert?
Antwort zeigen
Richtige Antwort: In eine junge und eine alte Generation
Die meisten Objekte sterben jung, häufige günstige Scavenges räumen sie also ab. Überlebende Objekte wandern in die alte Generation, deren Sammlungen seltener und teurer sind, wenn auch meist nebenläufig und inkrementell.
- 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?
Antwort zeigen
Richtige Antwort: Das Old-Space-Limit von V8:
--max-old-space-sizeNeuere Node.js-Versionen bemessen den Heap nach dem Speicherlimit des Containers, aber der Heap ist nicht der ganze Speicher: Buffer, nativer Code und Thread-Stacks liegen außerhalb. Lass einen Puffer.
- Welches Muster ist eine klassische Ursache für ein Speicherleck in einem Node.js-Server?
Antwort zeigen
Richtige Antwort: Ein
Map-Cache auf Modulebene, der nie geleert wirdAlles, was von einem Objekt auf Modulebene erreichbar ist, lebt für immer. Nutze einen begrenzten LRU-Cache mit TTL, eine
WeakMapmit Objekten als Schlüssel oder einen externen Cache wie Redis. - Wie findet man, was in einem Node.js-Prozess leakt?
Antwort zeigen
Richtige Antwort: Mehrere über die Zeit aufgenommene Heap-Snapshots vergleichen
Die Vergleichsansicht zeigt Objekte, die zwischen Snapshots alloziert wurden, und Retainer-Pfade zeigen, was sie am Leben hält.
--heapsnapshot-near-heap-limitkann direkt vor einem Absturz einen Snapshot aufnehmen.
Kombinierte Tests mit diesem Thema
Fragen aus mehreren Themen auf einmal, wie im Vorstellungsgespräch für eine konkrete Stelle.
Programmieraufgaben
Schreib die Lösung direkt im Browser, und Tests prüfen sie sofort. Klassiker aus Vorstellungsgesprächen zu JavaScript (debounce, deepClone, Promise.all, LRU-Cache), zu TypeScript (Generics, Narrowing und Utility Types, geprüft von einem echten Compiler), Backend-Logik in Node.js (Middleware, Rate Limits, Job-Queues), SQL-Abfragen in echtem PostgreSQL und zu React: Komponenten und Hooks wie eine Aufgabenliste, Tabs, useDebounce und useInterval.
Aufgaben öffnen →