Node.js læner sig op ad en håndfuld designmønstre, der passer til dets modulsystem, asynkrone model og streaming-I/O. De mest almindelige, som enhver backend-udvikler bør genkende:
Node.js læner sig op ad en håndfuld designmønstre, der passer til dets modulsystem, asynkrone model og streaming-I/O. De mest almindelige, som enhver backend-udvikler bør genkende:
module.exports / export og holder det interne privat. Fundamentet for kodeorganisering i Node.// db.js — hvert `require("./db")` får den samme pool (singleton via modul-cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams og de fleste kernemoduler bruger det.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), populariseret af Express/Koa. Fremragende til tværgående hensyn (auth, logging, validering).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"));
| Behov | Mønster |
|---|---|
| Én delt ressource | Singleton (modul-cache) |
Byg objekter, skjul new | Factory |
| Reagér på asynkrone events | Observer / EventEmitter |
| Tværgående request-logik | Middleware |
| Behandl store data sikkert | Streams / pipeline |
| Testbare, løst koblede afhængigheder | Dependency Injection |
Mønstre er et fælles ordforråd: at sige "config'en er en modul-cachet singleton" eller "auth er middleware" formidler et design med få ord. Nodes egen kerne (EventEmitter, streams, modulsystemet) er bygget af disse, så at genkende dem hjælper dig med at læse frameworks og strukturere dine egne tjenester. Interviewere bruger dette spørgsmål til at tjekke, at du ikke bare kobler callbacks ad hoc, men griber efter det mønster, der passer — og kender dets afvejninger, som at en singleton gør global state sværere at teste.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér