Node.js leunt op een handjevol design patterns die passen bij zijn modulesysteem, async-model en streaming I/O. De meest voorkomende die elke backend-ontwikkelaar zou moeten herkennen:
Node.js leunt op een handjevol design patterns die passen bij zijn modulesysteem, async-model en streaming I/O. De meest voorkomende die elke backend-ontwikkelaar zou moeten herkennen:
module.exports / export, terwijl je de interne delen privé houdt. De basis van code-organisatie in Node.// db.js — elke `require("./db")` krijgt deze zelfde pool (singleton via module cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams en de meeste core-modules gebruiken het.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next) ontvangen, populair gemaakt door Express/Koa. Ideaal voor cross-cutting concerns (auth, logging, validation).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"));
| Behoefte | Pattern |
|---|---|
| Eén gedeelde resource | Singleton (module cache) |
Objecten bouwen, new verbergen | Factory |
| Reageren op async events | Observer / EventEmitter |
| Cross-cutting request-logica | Middleware |
| Grote data veilig verwerken | Streams / pipeline |
| Testbare, ontkoppelde dependencies | Dependency Injection |
Patterns zijn een gedeelde woordenschat: zeggen "de config is een module-gecachte singleton" of "auth is middleware" communiceert een ontwerp in een paar woorden. De core van Node zelf (EventEmitter, streams, het modulesysteem) is uit deze patterns opgebouwd, dus ze herkennen helpt je frameworks te lezen en je eigen services te structureren. Interviewers gebruiken deze vraag om te controleren of je niet zomaar ad hoc callbacks aan elkaar knoopt, maar naar het passende pattern grijpt — en de trade-offs ervan kent, zoals een singleton die globale state moeilijker te testen maakt.
Een bibliotheek met IT-sollicitatievragen met gedetailleerde antwoorden — van Junior tot Senior.
Doneren