Node.js stützt sich auf eine Handvoll Entwurfsmuster, die zu seinem Modulsystem, seinem asynchronen Modell und seinem Streaming-I/O passen. Die gängigsten, die jeder Backend-Entwickler erkennen sollte:
Node.js stützt sich auf eine Handvoll Entwurfsmuster, die zu seinem Modulsystem, seinem asynchronen Modell und seinem Streaming-I/O passen. Die gängigsten, die jeder Backend-Entwickler erkennen sollte:
module.exports / export bereit und hältst Internas privat. Die Grundlage der Codeorganisation in Node.// db.js — jedes `require("./db")` erhält denselben Pool (Singleton über den Modul-Cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, Streams und die meisten Kernmodule nutzen es.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next) erhalten, popularisiert durch Express/Koa. Ideal für Querschnittsbelange (Auth, Logging, Validierung).app.use((req, res, next) => { req.startedAt = Date.now(); next(); });
const { pipeline } = require("node:stream/promises");
await pipeline(fs.createReadStream("in"), gzip(), fs.createWriteStream("out.gz"));
| Bedarf | Muster |
|---|---|
| Eine geteilte Ressource | Singleton (Modul-Cache) |
Objekte bauen, new verbergen | Factory |
| Auf asynchrone Events reagieren | Observer / EventEmitter |
| Querschnittslogik pro Request | Middleware |
| Große Daten sicher verarbeiten | Streams / pipeline |
| Testbare, entkoppelte Abhängigkeiten | Dependency Injection |
Muster sind ein gemeinsames Vokabular: zu sagen „die Config ist ein modul-gecachtes Singleton" oder „Auth ist Middleware" vermittelt ein Design in wenigen Worten. Nodes eigener Kern (EventEmitter, Streams, das Modulsystem) ist aus diesen aufgebaut, sodass ihr Erkennen dir hilft, Frameworks zu lesen und deine eigenen Services zu strukturieren. Interviewer nutzen diese Frage, um zu prüfen, dass du Callbacks nicht bloß ad hoc verdrahtest, sondern zum passenden Muster greifst — und seine Kompromisse kennst, etwa dass ein Singleton globalen Zustand schwerer testbar macht.
Eine Sammlung von IT-Interviewfragen mit ausführlichen Antworten — vom Junior bis zum Senior.
Spenden