🎁 अभी साइन अप करें और ऑनलाइन AI के अधिकतम 30 मिनट मुफ्त पाएं। क्रेडिट कार्ड की जरूरत नहीं।

Node.js साक्षात्कार प्रश्न और उत्तर: इवेंट लूप, Async, APIs, और स्केलिंग

September 3, 2026
Node.js साक्षात्कार प्रश्न उत्तर और कोड के साथ इवेंट लूप, async पैटर्न, Express, स्ट्रीम, मेमोरी लीक, सुरक्षा, और स्केलिंग पर।
Node.js साक्षात्कार प्रश्न और उत्तर: इवेंट लूप, Async, APIs, और स्केलिंग
node js interview questions
nodejs interview questions and answers
node event loop interview
express interview questions

Node.js इंटरव्यू की शुरुआत इवेंट लूप और असिंक्रोनस कोड से होती है, फिर API, एरर हैंडलिंग, स्ट्रीम्स, परफॉर्मेंस और सिक्योरिटी पर बात आती है। कैंडिडेट्स के अटकने की सबसे आम वजह यह होती है कि वे इवेंट लूप को किसी जादू की तरह बताते हैं। इंटरव्यूअर यह सुनना चाहता है कि क्या कहाँ चलता है और क्या ब्लॉक करता है — इसकी साफ़ समझ।

नीचे 24 सवाल उनके जवाबों के साथ हैं। कोड सैंपल छोटे हैं ताकि आप उन्हें याद से टाइप कर सकें।

इवेंट लूप और async

1. Node.js क्या है?

यह Chrome के V8 इंजन पर बना एक JavaScript रनटाइम है जो ब्राउज़र के बाहर चलता है। यह JavaScript के लिए सिंगल-थ्रेडेड इवेंट लूप और नॉन-ब्लॉकिंग I/O का इस्तेमाल करता है, जिसकी वजह से यह ऐसी बहुत सारी कनेक्शन्स संभालने में अच्छा है जो ज़्यादातर समय इंतज़ार में बिताती हैं।

2. इवेंट लूप कैसे काम करता है?

JavaScript कोड एक ही थ्रेड पर चलता है। जब यह कोई I/O ऑपरेशन शुरू करता है, जैसे फ़ाइल पढ़ना या रिक्वेस्ट भेजना, तो Node उसे सिस्टम या थ्रेड पूल को सौंप देता है और आगे बढ़ जाता है। ऑपरेशन पूरा होने पर उसका कॉलबैक क्यू में चला जाता है, और कॉल स्टैक खाली होने पर इवेंट लूप उसे चलाता है। लूप कई फेज़ से गुज़रता है: timers, pending callbacks, poll (I/O), check (setImmediate), और close callbacks।

3. process.nextTick, Promises, setTimeout और setImmediate का क्रम क्या है?

console.log('1 sync');
setTimeout(() => console.log('4 timeout'), 0);
setImmediate(() => console.log('5 immediate'));
Promise.resolve().then(() => console.log('3 promise'));
process.nextTick(() => console.log('2 nextTick'));

सिंक्रोनस कोड सबसे पहले चलता है। फिर process.nextTick कॉलबैक, फिर promise माइक्रोटास्क, फिर लूप के फेज़। मुख्य मॉड्यूल में setTimeout(0) और setImmediate का क्रम बदल सकता है, लेकिन किसी I/O कॉलबैक के अंदर setImmediate हमेशा पहले चलता है। सिर्फ़ रटने के बजाय समझाने के लिए तैयार रहें।

4. "इवेंट लूप को ब्लॉक करना" का क्या मतलब है, और इससे कैसे बचें?

कोई लंबा सिंक्रोनस काम, जैसे बहुत बड़ा JSON पार्स करना, कोई भारी लूप, या रिक्वेस्ट हैंडलर में fs.readFileSync, उसके पूरा होने तक बाकी सारी रिक्वेस्ट रोक देता है। इससे बचने के लिए async APIs इस्तेमाल करें, काम को छोटे-छोटे हिस्सों में बाँटें, या CPU-भारी काम worker threads या किसी दूसरे प्रोसेस पर डाल दें।

5. Callbacks, promises और async/await: इनमें क्या फ़र्क है?

Callbacks सबसे पुराना तरीका हैं और गहरे नेस्ट हो सकते हैं। Promises किसी भविष्य की वैल्यू को दर्शाते हैं और then से चेन होते हैं। async/await promises के ऊपर की सिंटैक्स है जो सिंक्रोनस कोड जैसी पढ़ने में आसान लगती है और try/catch के साथ काम करती है।

6. async टास्क को समानांतर में कैसे चलाएँ?

const [user, orders] = await Promise.all([getUser(id), getOrders(id)]);

Promise.all में कोई भी फेल हुआ तो वह reject हो जाता है। Promise.allSettled सबका इंतज़ार करता है और हर नतीजा बताता है। Promise.race सबसे पहले पूरा होने वाला रिज़ल्ट देता है। जब कॉल्स एक-दूसरे पर निर्भर न हों, तो लूप के अंदर await न करें।

7. worker threads, child processes और cluster में क्या फ़र्क है?

Worker threads एक ही प्रोसेस में अलग-अलग थ्रेड्स पर JavaScript चलाते हैं और मेमोरी शेयर कर सकते हैं, जो CPU-भारी काम के लिए ठीक है। Child processes अलग प्रोग्राम शुरू करते हैं। cluster मॉड्यूल ऐप की कई कॉपी बनाता है, हर कोर के लिए एक, जो एक ही पोर्ट शेयर करती हैं, ताकि रिक्वेस्ट संभालने में सारे CPU इस्तेमाल हो सकें।

मॉड्यूल और टूलिंग

8. CommonJS बनाम ES modules?

CommonJS require और module.exports इस्तेमाल करता है और सिंक्रोनस तरीके से लोड होता है। ES modules import और export इस्तेमाल करते हैं, JavaScript में यही स्टैंडर्ड हैं, और top-level await को सपोर्ट करते हैं। Node दोनों को सपोर्ट करता है, और फ़ाइल एक्सटेंशन या package.json के type फ़ील्ड से तय होता है कि कौन-सा इस्तेमाल होगा।

9. package.json में क्या होता है, और dependencies तथा devDependencies में क्या फ़र्क है?

इसमें मेटाडेटा, स्क्रिप्ट्स और डिपेंडेंसीज़ होती हैं। dependencies रनटाइम पर चाहिए होती हैं, और devDependencies सिर्फ़ डेवलपमेंट और टेस्टिंग के लिए। एक लॉक फ़ाइल सटीक वर्शन रिकॉर्ड करती है ताकि इंस्टॉल हर बार एक जैसे हों।

10. एनवायरनमेंट कॉन्फ़िगरेशन कैसे संभालते हैं?

एनवायरनमेंट वेरिएबल्स इस्तेमाल करें, जिन्हें process.env से पढ़ें, और एक वैलिडेटेड कॉन्फ़िग मॉड्यूल रखें। सीक्रेट्स रिपॉज़िटरी से बाहर रखें, और प्रोडक्शन में सीक्रेट्स मैनेजर इस्तेमाल करें।

APIs और Express

11. Express में middleware क्या है?

यह एक फ़ंक्शन है जिसके पास रिक्वेस्ट, रिस्पॉन्स और next की पहुँच होती है। Middleware क्रम से चलता है और रिक्वेस्ट बदल सकता है, रिस्पॉन्स ख़त्म कर सकता है, या कंट्रोल आगे भेज सकता है। आम इस्तेमाल लॉगिंग, बॉडी पार्स करना, ऑथेंटिकेशन और एरर हैंडलिंग में होता है।

app.use((req, res, next) => {
  console.log(req.method, req.url);
  next();
});

12. Express ऐप में एरर कैसे संभालते हैं?

async हैंडलर्स में एरर पकड़ें और उन्हें next(err) को भेजें, फिर चार आर्ग्युमेंट वाला (err, req, res, next) एरर-हैंडलिंग middleware इस्तेमाल करें ताकि एक जैसा रिस्पॉन्स भेजा जा सके। Express 5 में हैंडलर्स से reject हुए promises अपने आप आगे भेज दिए जाते हैं। बिना पकड़े गए exceptions और unhandled rejections के लिए लॉग करें और प्रोसेस को रीस्टार्ट करें, न कि अनजान स्थिति में चलाते रहें।

13. ऑर्डर बनाने के लिए REST API endpoint कैसे डिज़ाइन करेंगे?

इनपुट वैलिडेट करें, यूज़र को ऑथेंटिकेट करें, परमिशन जाँचें, डेटाबेस ट्रांज़ैक्शन के अंदर ऑर्डर बनाएँ, नए रिसोर्स और उसके location के साथ 201 लौटाएँ, डुप्लीकेट को idempotency key से संभालें, और सही स्टेटस कोड के साथ साफ़ एरर लौटाएँ।

14. यूज़र्स को ऑथेंटिकेट कैसे करते हैं?

कुकीज़ वाले सेशन, या JWT जैसे टोकन। पासवर्ड को bcrypt या argon2 जैसे धीमे एल्गोरिदम से हैश करें। JWTs के साथ expiry छोटी रखें, refresh tokens सावधानी से इस्तेमाल करें, और टोकन में संवेदनशील डेटा न रखें।

स्ट्रीम्स, फ़ाइलें और परफ़ॉर्मेंस

15. स्ट्रीम्स क्या हैं, और इनका उपयोग क्यों करें?

स्ट्रीम्स डेटा को पूरी मेमोरी में लोड करने के बजाय टुकड़ों में प्रोसेस करती हैं। इसके प्रकार हैं readable, writable, duplex, और transform। बड़ी फ़ाइलों, अपलोड और डाउनलोड के लिए इनका उपयोग करें।

const fs = require('node:fs');
const { pipeline } = require('node:stream/promises');
const zlib = require('node:zlib');
await pipeline(fs.createReadStream('in.log'), zlib.createGzip(), fs.createWriteStream('in.log.gz'));

16. बैकप्रेशर क्या है?

जब कोई writable स्ट्रीम किसी readable स्ट्रीम की गति नहीं पकड़ पाती, तो वह स्रोत को धीमा होने का संकेत देती है। pipeline और pipe यह आपके लिए संभाल लेते हैं। अगर आप मैन्युअल रूप से लिखते हैं, तो write() का रिटर्न वैल्यू जाँचें और drain इवेंट का इंतज़ार करें।

17. मेमोरी लीक कैसे खोजेंगे?

समय के साथ मेमोरी पर नज़र रखें, हीप स्नैपशॉट लें (Chrome DevTools या --inspect), और यह देखने के लिए उनकी तुलना करें कि कौन-सी ऑब्जेक्ट्स बढ़ रही हैं। आम कारण हैं ऐसे ग्लोबल कैश जो कभी एक्सपायर नहीं होते, ऐसे इवेंट लिसनर जो हटाए नहीं जाते, और बड़ी ऑब्जेक्ट्स को पकड़े रखने वाले क्लोज़र।

18. Node.js एप्लिकेशन को स्केल कैसे करेंगे?

cluster मॉड्यूल या किसी प्रोसेस मैनेजर के साथ कई प्रोसेस चलाएँ, उन्हें लोड बैलेंसर के पीछे रखें, सेशन को Redis या डेटाबेस में ले जाकर ऐप को स्टेटलेस रखें, कैशिंग का उपयोग करें, और कंटेनर के साथ स्केल आउट करें। CPU-भारी काम को वर्कर्स या अलग सर्विसेज़ पर ले जाएँ।

19. धीमे एंडपॉइंट को प्रोफ़ाइल कैसे करेंगे?

पहले लॉग और टाइमिंग से मापें, फिर हॉट फ़ंक्शन खोजने के लिए --prof या --cpu-prof, या कोई फ्लेम ग्राफ़ टूल इस्तेमाल करें। डेटाबेस क्वेरीज़ जाँचें, क्योंकि धीमापन JavaScript की तुलना में अक्सर वहीं होता है।

सुरक्षा और विश्वसनीयता

20. Node.js की आम सुरक्षा समस्याएँ क्या हैं?

इंजेक्शन (SQL, NoSQL, कमांड), क्रॉस-साइट स्क्रिप्टिंग, कमज़ोर ऑथेंटिकेशन, कमज़ोर डिपेंडेंसीज़, कोड में सीक्रेट्स, रेट लिमिटिंग की कमी, और असुरक्षित डीसीरियलाइज़ेशन। इन्हें इनपुट वैलिडेशन, पैरामीटराइज़्ड क्वेरीज़, helmet, डिपेंडेंसी ऑडिट (npm audit), और न्यूनतम विशेषाधिकार के सिद्धांत से कम करें।

21. ग्रेसफुल शटडाउन कैसे करेंगे?

SIGTERM पर, नए कनेक्शन स्वीकार करना बंद करें, चल रहे रिक्वेस्ट पूरे होने दें, डेटाबेस कनेक्शन बंद करें, और फिर एग्ज़िट करें, साथ में बैकअप के तौर पर एक टाइमआउट रखें।

process.on('SIGTERM', () => {
  server.close(() => process.exit(0));
});

22. Node.js कोड को टेस्ट कैसे करेंगे?

बिल्ट-इन node:test, Jest, या Vitest जैसे रनर के साथ यूनिट टेस्ट, और बाहरी कॉल्स को मॉक करें। टेस्ट डेटाबेस के साथ इंटीग्रेशन टेस्ट और Supertest जैसे टूल के साथ HTTP-लेवल टेस्ट। टेस्ट तेज़ और स्वतंत्र रखें।

डिज़ाइन और परिदृश्य

23. लोड में आपका API धीमा है। आप कैसे जाँच करेंगे?

लेटेंसी और CPU के मेट्रिक्स देखें। अगर एक कोर पर CPU ज़्यादा है, तो ब्लॉकिंग कोड या भारी JSON काम खोजें। अगर CPU कम है और लेटेंसी ज़्यादा, तो डेटाबेस या अन्य सर्विसेज़ पर इंतज़ार देखें। फिर कैशिंग, इंडेक्स, कनेक्शन पूलिंग, या बैचिंग जोड़ें, और लोड में दोबारा टेस्ट करें।

24. बड़ी फ़ाइलों के लिए फ़ाइल अपलोड एंडपॉइंट कैसे बनाएँगे?

अपलोड को मेमोरी में बफ़र करने के बजाय सीधे स्टोरेज पर स्ट्रीम करें, जैसे प्री-साइन्ड URL के साथ ऑब्जेक्ट स्टोरेज। साइज़ लिमिट सेट करें, टाइप वैलिडेट करें, ज़रूरत हो तो स्कैन करें, और बाद में बैकग्राउंड जॉब में प्रोसेस करें।

तैयारी कैसे करें

ऑथेंटिकेशन, एक डेटाबेस, और एक अपलोड रूट के साथ छोटा API लिखें, फिर लोड टूल से उसकी प्रोफ़ाइलिंग करें और एक समस्या ठीक करें। इवेंट लूप बनाने का अभ्यास करें और ऊपर दिए गए जैसे छोटे स्क्रिप्ट के आउटपुट को समझाने का अभ्यास करें। परफ़ॉर्मेंस या विश्वसनीयता की समस्या डीबग करने की एक असली कहानी तैयार रखें। कोडिंग राउंड के लिए, हमारी coding interview assistant guide देखें, और डिज़ाइन के लिए, system design guide।

अपने जवाब ज़ोर से बोलें और ट्रांसक्रिप्ट पढ़कर उन जगहों को देखें जहाँ आपने कोई शब्द बिना समझाए इस्तेमाल किया। किसी भी लाइव इंटरव्यू में AI टूल्स पर नियोक्ता के नियमों का पालन करें।

YesToTheOffer के साथ Node.js साक्षात्कार उत्तरों का अभ्यास करें

एक मॉक तकनीकी साक्षात्कार चलाएं, इवेंट लूप को जोर से समझाएं, और बाद में अपने ट्रांसक्रिप्ट की समीक्षा करें। 30 मुफ्त मिनट, कोई सदस्यता नहीं।

iOS & Android — जल्द आ रहा है
कीमतें देखें