Node.js lutar sig mot en handfull designmönster som passar dess modulsystem, asynkrona modell och strömmande I/O. De vanligaste som varje backend-utvecklare bör känna igen:
Node.js lutar sig mot en handfull designmönster som passar dess modulsystem, asynkrona modell och strömmande I/O. De vanligaste som varje backend-utvecklare bör känna igen:
module.exports / export och håller interna delar privata. Grunden för kodorganisation i Node.// db.js — varje `require("./db")` får denna samma 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 och de flesta core-moduler använder det.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), populariserad av Express/Koa. Utmärkt för genomskärande angelägenheter (auth, loggning, 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 |
|---|---|
| En delad resurs | Singleton (module cache) |
Bygg objekt, dölj new | Factory |
| Reagera på asynkrona events | Observer / EventEmitter |
| Genomskärande request-logik | Middleware |
| Bearbeta stor data säkert | Streams / pipeline |
| Testbara, avkopplade beroenden | Dependency Injection |
Mönster är ett gemensamt ordförråd: att säga "config är en module-cachad singleton" eller "auth är middleware" kommunicerar en design med några få ord. Nodes egen core (EventEmitter, streams, modulsystemet) är byggd av dessa, så att känna igen dem hjälper dig att läsa ramverk och strukturera dina egna tjänster. Intervjuare använder denna fråga för att kontrollera att du inte bara kopplar callbacks ad hoc, utan sträcker dig efter mönstret som passar — och känner till dess avvägningar, som att en singleton gör globalt tillstånd svårare att testa.
Ett bibliotek med IT-intervjufrågor och detaljerade svar — från Junior till Senior.
Donera