Node.js bergantung pada segelintir design pattern yang sesuai dengan sistem modulnya, model async, dan streaming I/O. Yang paling biasa dan patut dikenali oleh setiap pembangun backend:
Node.js bergantung pada segelintir design pattern yang sesuai dengan sistem modulnya, model async, dan streaming I/O. Yang paling biasa dan patut dikenali oleh setiap pembangun backend:
module.exports / export, sambil mengekalkan bahagian dalaman sebagai private. Asas kepada organisasi kod dalam Node.// db.js — setiap `require("./db")` mendapat pool yang sama ini (singleton melalui module cache).
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams, dan kebanyakan modul teras menggunakannya.const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next), dipopularkan oleh Express/Koa. Bagus untuk kebimbangan merentas (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"));
| Keperluan | Pattern |
|---|---|
| Satu sumber dikongsi | Singleton (module cache) |
Bina objek, sembunyikan new | Factory |
| Bertindak balas kepada event async | Observer / EventEmitter |
| Logik request merentas | Middleware |
| Proses data besar dengan selamat | Streams / pipeline |
| Kebergantungan boleh diuji, terpisah | Dependency Injection |
Pattern ialah perbendaharaan kata bersama: menyebut "config ialah singleton yang di-cache oleh modul" atau "auth ialah middleware" menyampaikan sesuatu reka bentuk dalam beberapa perkataan. Teras Node sendiri (EventEmitter, streams, sistem modul) dibina daripada pattern ini, jadi mengenalinya membantu anda membaca framework dan menstruktur perkhidmatan anda sendiri. Penemu duga menggunakan soalan ini untuk menyemak bahawa anda bukan sekadar menyambung callback secara sembarangan, tetapi memilih pattern yang sesuai — dan tahu trade-off-nya, seperti singleton yang menjadikan state global lebih sukar untuk diuji.
Pustaka soalan temu duga IT dengan jawapan terperinci — daripada Junior hingga Senior.
Derma