Node.js कुछ design patterns पर निर्भर करता है जो इसके module system, async model, और streaming I/O के साथ फिट बैठते हैं। सबसे सामान्य जिन्हें हर backend developer को पहचानना चाहिए:
Node.js कुछ design patterns पर निर्भर करता है जो इसके module system, async model, और streaming I/O के साथ फिट बैठते हैं। सबसे सामान्य जिन्हें हर backend developer को पहचानना चाहिए:
module.exports / export के ज़रिए एक public API उजागर करते हैं, और internals को private रखते हैं। Node में code संगठन की नींव।// db.js — हर require("./db") को यही pool मिलता है (module cache के ज़रिए singleton)।
const pool = createPool(process.env.DATABASE_URL);
module.exports = pool;
function createLogger(kind) {
return kind === "json" ? new JsonLogger() : new TextLogger();
}
EventEmitter, streams, और अधिकांश core modules इसका उपयोग करते हैं।const { EventEmitter } = require("node:events");
const bus = new EventEmitter();
bus.on("order:paid", (o) => sendReceipt(o));
bus.emit("order:paid", order);
(ctx, next) प्राप्त करता है, Express/Koa द्वारा लोकप्रिय। 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"));
| ज़रूरत | Pattern |
|---|---|
| एक shared resource | Singleton (module cache) |
Objects बनाएँ, new छिपाएँ | Factory |
| async events पर प्रतिक्रिया दें | Observer / EventEmitter |
| cross-cutting request logic | Middleware |
| बड़े data को सुरक्षित रूप से process करें | Streams / pipeline |
| testable, decoupled dependencies | Dependency Injection |
Patterns एक साझा शब्दावली हैं: "config एक module-cached singleton है" या "auth एक middleware है" कहना कुछ ही शब्दों में एक design संप्रेषित कर देता है। Node का अपना core (EventEmitter, streams, module system) इन्हीं से बना है, इसलिए इन्हें पहचानना आपको frameworks पढ़ने और अपनी services को संरचित करने में मदद करता है। इंटरव्यूअर इस प्रश्न का उपयोग यह जाँचने के लिए करते हैं कि आप केवल callbacks को अनियमित रूप से नहीं जोड़ते, बल्कि उस pattern तक पहुँचते हैं जो फिट बैठता है — और उसके trade-offs जानते हैं, जैसे singleton global state को test करना कठिन बना देता है।
विस्तृत उत्तरों के साथ IT इंटरव्यू प्रश्नों की एक लाइब्रेरी — जूनियर से सीनियर तक।
दान करें