Junior Backend Entwickler (Node.js) Interview Fragen: Der komplette Leitfaden

Milad Bonakdar
Autor
Meistern Sie die Node.js Backend-Entwicklung mit 35 essentiellen Interviewfragen, die JavaScript-Grundlagen, asynchrone Programmierung, Express.js, Datenbanken, APIs, Sicherheit und mehr abdecken. Perfekte Vorbereitung für Junior Backend Entwickler Interviews.
Einführung
Dieser umfassende Leitfaden enthält 35 sorgfältig ausgewählte Fragen für Vorstellungsgespräche, die die Grundlagen der Node.js-Backend-Entwicklung abdecken. Dies sind die Fragen, denen Junior-Backend-Entwickler tatsächlich in Vorstellungsgesprächen begegnen. Jede Frage enthält eine ausführliche Antwort, eine Seltenheitsbewertung und eine Schwierigkeitsbewertung, die auf der Analyse von Hunderten von echten Vorstellungsgesprächen von großen Technologieunternehmen und Startups basiert.
Egal, ob du dich auf deine erste Backend-Rolle vorbereitest oder von der Frontend-Entwicklung wechselst, dieser Leitfaden deckt alles ab, von JavaScript-Grundlagen über API-Design, Datenbankverwaltung, Sicherheitsbest Practices bis hin zu Bereitstellungsstrategien.
JavaScript-Grundlagen (8 Fragen)
1. Erkläre den Unterschied zwischen var, let und const in JavaScript
Antwort:
var: Funktionsbereich, wird hochgezogen und mitundefinedinitialisiert, kann im selben Bereich neu deklariert werden, in modernem Code weitgehend veraltetlet: Blockbereich, wird hochgezogen, verbleibt aber bis zur Deklaration in der Temporal Dead Zone (TDZ), kann nicht im selben Bereich neu deklariert werden, kann neu zugewiesen werdenconst: Blockbereich, wird hochgezogen, befindet sich aber in der TDZ, muss bei der Deklaration initialisiert werden, kann nicht neu zugewiesen werden (aber Objekt-/Array-Inhalte können verändert werden)
Beispiel:
Best Practice: Verwende standardmäßig const, let, wenn du neu zuweisen musst, verwende niemals var in modernem JavaScript.
Seltenheit: Häufig
Schwierigkeit: Einfach
2. Was sind Closures und gib ein praktisches Beispiel in Node.js?
Antwort: Ein Closure entsteht, wenn eine innere Funktion Zugriff auf Variablen aus dem Gültigkeitsbereich ihrer äußeren (umschließenden) Funktion hat, auch nachdem die äußere Funktion zurückgekehrt ist. Die innere Funktion "schließt" diese Variablen ein.
Praktisches Node.js-Beispiel:
Vorteile:
- Datenschutz (secretKey kann nicht direkt aufgerufen werden)
- Funktionsfabriken
- Implementierung des Modulmusters
- Beibehalten des Zustands in asynchronen Operationen
Seltenheit: Häufig
Schwierigkeit: Mittel
3. Erkläre das Schlüsselwort this und wie es sich in Pfeilfunktionen unterscheidet
Antwort: this bezieht sich auf den Ausführungskontext. Sein Wert hängt davon ab, WIE die Funktion aufgerufen wird.
Reguläre Funktionen:
Pfeilfunktionen:
Hauptunterschied: Pfeilfunktionen haben kein eigenes this - sie erben es vom umschließenden Gültigkeitsbereich.
Seltenheit: Häufig
Schwierigkeit: Mittel
4. Was sind Promises und wie unterscheiden sie sich von Callbacks?
Antwort: Ein Promise repräsentiert den eventuellen Abschluss (oder Misserfolg) einer asynchronen Operation.
Callback-Muster (Callback-Hölle):
Promise-Muster:
Vorteile:
- Vermeidet Callback-Hölle
- Besseres Fehlerhandling mit
.catch() - Verkettbare Operationen
- Kann
Promise.all()für parallele Operationen verwenden
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
5. Was ist async/await und wie verbessert es die Lesbarkeit des Codes?
Antwort: async/await ist syntaktischer Zucker, der auf Promises aufbaut und asynchronen Code mehr wie synchronen Code aussehen und sich auch so verhalten lässt.
Beispiel:
Wichtige Punkte:
async-Funktion gibt immer ein Promise zurückawaitpausiert die Ausführung, bis das Promise aufgelöst ist- Verwende
try/catchfür das Fehlerhandling - Macht sequentielle Operationen übersichtlicher
Seltenheit: Häufig
Schwierigkeit: Mittel
6. Erkläre Destrukturierung für Objekte und Arrays
Antwort: Destrukturierung extrahiert Werte aus Arrays oder Eigenschaften aus Objekten in separate Variablen.
Array-Destrukturierung:
Objekt-Destrukturierung:
Funktionsparameter:
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
7. Was ist der Spread-Operator und was sind Rest-Parameter?
Antwort:
Spread-Operator (...) - Erweitert Iterables:
Rest-Parameter (...) - Sammelt mehrere Elemente:
Hauptunterschied: Spread erweitert, Rest sammelt.
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
8. Erkläre gängige Array-Methoden: map, filter, reduce, forEach
Antwort:
map - Transformiert jedes Element, gibt ein neues Array zurück:
filter - Behält Elemente bei, die die Bedingung erfüllen:
reduce - Reduziert auf einen einzelnen Wert:
forEach - Iteriert, ohne ein neues Array zurückzugeben:
Seltenheit: Häufig
Schwierigkeit: Einfach
Node.js-Grundlagen (7 Fragen)
9. Was ist Node.js und wie unterscheidet es sich von traditionellen serverseitigen Sprachen?
Antwort: Node.js ist eine JavaScript-Laufzeitumgebung, die auf der V8-JavaScript-Engine von Chrome aufbaut und es ermöglicht, JavaScript auf der Serverseite auszuführen.
Hauptunterschiede:
- Single-Threaded Event Loop: Verwendet ein nicht-blockierendes I/O-Modell im Gegensatz zu Multi-Threaded Blocking I/O
- Standardmäßig asynchron: Operationen blockieren den Haupt-Thread nicht
- JavaScript überall: Dieselbe Sprache für Frontend und Backend
- NPM-Ökosystem: Größte Paketregistrierung der Welt
- Schnelle Ausführung: V8-Engine kompiliert JavaScript in nativen Maschinencode
Wann sollte man Node.js verwenden:
- Echtzeit-Anwendungen (Chat, Gaming)
- API-Server
- Microservices
- Daten-Streaming-Anwendungen
- I/O-intensive Anwendungen
Wann NICHT verwenden:
- CPU-intensive Aufgaben (Bildverarbeitung, Videokodierung)
- Anwendungen, die komplexe Berechnungen erfordern
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
10. Erkläre den Event Loop in Node.js
Antwort: Der Event Loop ist der Mechanismus, der es Node.js ermöglicht, nicht-blockierende I/O-Operationen durchzuführen, obwohl es Single-Threaded ist.
Wie es funktioniert:
- Call Stack: Führt synchronen Code aus (LIFO)
- Node APIs: Behandeln asynchrone Operationen (fs, http, Timer)
- Callback Queue (Macrotasks): Enthält Callbacks von Node APIs
- Microtask Queue: Enthält Promise-Callbacks (höhere Priorität)
- Event Loop: Verschiebt Aufgaben von Queues zum Call Stack, wenn der Stack leer ist
Ausführungsreihenfolge:
Phasen des Event Loops:
- Timer (setTimeout, setInterval)
- Ausstehende Callbacks
- Leerlauf, Vorbereitung
- Poll (Abrufen neuer I/O-Ereignisse)
- Check (setImmediate-Callbacks)
- Close-Callbacks
Seltenheit: Häufig
Schwierigkeit: Schwer
11. Was ist der Unterschied zwischen blockierendem und nicht-blockierendem Code?
Antwort:
Blockierender Code - Hält die Ausführung an, bis die Operation abgeschlossen ist:
Nicht-blockierender Code - Setzt die Ausführung fort, behandelt das Ergebnis über einen Callback:
Warum nicht-blockierend wichtig ist:
- Der Server kann mehrere Anfragen gleichzeitig bearbeiten
- Bessere Ressourcenauslastung
- Verbesserte Leistung für I/O-Operationen
- Skalierbarkeit
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
12. Was sind Node.js-Module und wie funktioniert das Modulsystem?
Antwort: Node.js verwendet das CommonJS-Modulsystem (obwohl ES-Module ebenfalls unterstützt werden).
CommonJS (require/module.exports):
ES-Module (import/export):
Modultypen:
- Kernmodule: Eingebaut (fs, http, path)
- Lokale Module: Deine eigenen Dateien
- Drittanbieter-Module: Über npm installiert
Modul-Caching: Module werden nach dem ersten Require gecacht, sodass nachfolgende Requires dieselbe Instanz zurückgeben.
Seltenheit: Häufig
Schwierigkeit: Einfach
13. Erkläre den Unterschied zwischen process.nextTick() und setImmediate()
Antwort:
process.nextTick() - Führt den Callback in der aktuellen Phase aus, vor jeder anderen asynchronen Operation:
setImmediate() - Führt den Callback in der nächsten Iteration des Event Loops aus:
Prioritätsreihenfolge:
- Synchroner Code
process.nextTick()-Callbacks- Promise-Callbacks (Microtasks)
setTimeout(0)/setImmediate()(Macrotasks)
Anwendungsfälle:
nextTick: Stelle sicher, dass der Callback vor anderen asynchronen Operationen ausgeführt wirdsetImmediate: Verschiebe die Ausführung auf die nächste Event-Loop-Iteration
Seltenheit: Selten
Schwierigkeit: Mittel-Schwer
14. Was ist das globale Objekt in Node.js?
Antwort: Das globale Objekt in Node.js ähnelt dem window-Objekt in Browsern, wird aber global genannt.
Globale Eigenschaften:
Gängige Globals:
process- Prozessinformationen und -steuerungBuffer- Behandle BinärdatensetTimeout,setInterval,clearTimeout,clearIntervalsetImmediate,clearImmediateconsole- Konsolenausgabe
Hinweis: In ES-Modulen sind __dirname und __filename standardmäßig nicht verfügbar. Verwende stattdessen import.meta.url.
Seltenheit: Häufig
Schwierigkeit: Einfach
15. Wie handhabst du Fehler in Node.js-Anwendungen?
Antwort: Das Fehlerhandling in Node.js kann über verschiedene Ansätze verwaltet werden:
1. Try-Catch für synchronen Code:
2. Callback-Fehlermuster:
3. Promise-Fehlerhandling:
4. Async/Await mit Try-Catch:
5. Globale Fehlerhandler:
6. Express-Fehlermiddleware:
Seltenheit: Häufig
Schwierigkeit: Mittel
Express.js & Web-Frameworks (6 Fragen)
16. Was ist Express.js und was sind seine Hauptmerkmale?
Antwort: Express.js ist ein minimales und flexibles Node.js-Webanwendungs-Framework, das eine robuste Reihe von Funktionen zum Erstellen von Web- und mobilen Anwendungen bietet.
Hauptmerkmale:
- Routing: Definiere Endpunkte und HTTP-Methoden
- Middleware: Funktionen, die während des Request-Response-Zyklus ausgeführt werden
- Template Engines: Rendere dynamisches HTML (EJS, Pug, Handlebars)
- Fehlerhandling: Zentralisierte Fehlerhandlungs-Middleware
- Statische Dateien: Stelle statische Assets bereit
- JSON-Parsing: Eingebautes Body-Parsing für JSON- und URL-kodierte Daten
Grundlegendes Beispiel:
Warum Express:
- Minimal und unvoreingenommen
- Großes Ökosystem
- Leicht zu erlernen
- Flexibles Middleware-System
Seltenheit: Häufig
Schwierigkeit: Einfach
17. Was ist Middleware in Express.js? Gib Beispiele an.
Antwort: Middleware-Funktionen sind Funktionen, die Zugriff auf das Request-Objekt (req), das Response-Objekt (res) und die next-Funktion im Request-Response-Zyklus der Anwendung haben.
Middleware-Typen:
1. Application-Level Middleware:
2. Route-Level Middleware:
3. Error-Handling Middleware:
4. Built-in Middleware:
5. Third-Party Middleware:
Beispiel für benutzerdefinierte Authentifizierungs-Middleware:
Seltenheit: Häufig
Schwierigkeit: Mittel
18. Erkläre Express Routing und wie man Routen organisiert
Antwort: Routing bezieht sich darauf, wie die Endpunkte (URIs) einer Anwendung auf Clientanfragen reagieren.
Grundlegendes Routing:
Routenparameter:
Query-Parameter:
Organisieren von Routen mit Express Router:
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
19. Wie handhabst du Datei-Uploads in Express?
Antwort: Datei-Uploads können mit Middleware wie multer behandelt werden.
Grundlegender Datei-Upload:
Mehrere Dateien:
Benutzerdefinierte Speicherkonfiguration:
Seltenheit: Häufig
Schwierigkeit: Mittel
20. Was ist CORS und wie handhabst du es in Express?
Antwort: CORS (Cross-Origin Resource Sharing) ist eine Sicherheitsfunktion, die es Webseiten erlaubt oder verbietet, Anfragen an eine andere Domain zu stellen als die, die die Webseite bereitstellt.
Problem: Browser blockieren standardmäßig Anfragen von http://localhost:3000 an http://localhost:4000 (unterschiedliche Ursprünge).
Lösung mit CORS-Middleware:
Manuelle CORS-Header:
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
21. Wie strukturierst du eine große Express.js-Anwendung?
Antwort: Organisiere Code in logische Module und Ordner, um die Wartbarkeit zu gewährleisten.
Empfohlene Struktur:
Beispiel für die Trennung von Verantwortlichkeiten:
Controller (behandelt HTTP):
Service (Geschäftslogik):
Routen:
App-Setup:
Seltenheit: Häufig
Schwierigkeit: Mittel
Datenbankkonzepte (5 Fragen)
22. Was ist der Unterschied zwischen SQL- und NoSQL-Datenbanken?
Antwort:
SQL (relationale) Datenbanken:
- Strukturierte Daten mit Tabellen, Zeilen, Spalten
- Das Schema muss vor der Verwendung definiert werden
- ACID-Konformität (Atomicity, Consistency, Isolation, Durability)
- Beispiele: PostgreSQL, MySQL, SQLite
- Am besten geeignet für: Komplexe Abfragen, Transaktionen, strukturierte Daten
NoSQL-Datenbanken:
- Flexibles Schema oder Schema-los
- Verschiedene Datenmodelle (Dokument, Key-Value, Graph, Spalte)
- Horizontale Skalierung
- Beispiele: MongoDB, Redis, Cassandra
- Am besten geeignet für: Groß angelegte Anwendungen, flexible Schemata, schnelle Entwicklung
Vergleich:
Wann sollte man SQL verwenden:
- Komplexe Abfragen und Beziehungen
- ACID-Konformität erforderlich
- Strukturierte Daten
- Finanztransaktionen
Wann sollte man NoSQL verwenden:
- Schnelle Entwicklung
- Große Datenmengen
- Flexible Schemaanforderungen
- Einfache Abfragen
Seltenheit: Häufig
Schwierigkeit: Einfach-Mittel
23. Wie verbindet man sich in Node.js mit einer Datenbank? (MongoDB-Beispiel)
Antwort: Verwende MongoDB mit Mongoose als Beispiel:
Grundlegende Verbindung:
Mit Umgebungsvariablen:
Verbindungsereignisse:



