Node.js फ्रेमवर्क क्या हैं?
Node.js -, - , , .
यह Node.js को स्केलेबल नेटवर्क एप्लिकेशन, रीयल-टाइम एप्लिकेशन और API बनाने के लिए आदर्श बनाता है।
निर्बाध I/O
लंबे I/O ऑपरेशन महत्वपूर्ण थ्रेड को ब्लॉक नहीं करते हैं
घटना के आधार पर
घटनाओं और कॉलबैक के आधार पर काम करता है
एकल थ्रेड
इवेंट लूप के साथ एकल क्रिटिकल थ्रेड
अतुल्यकालिक संचालन
कार्य समानांतर में चलते हैं, क्रमिक रूप से नहीं
Node.js आर्किटेक्चर आरेख
Node.js :
शाखाबद्ध अनुरोध चरण
शाखाएँ Node.js सर्वर को अनुरोध भेजती हैं
प्रत्येक अनुरोध को ईवेंट कतार में जोड़ा जाता है
इवेंट लूप ग्रिड
इवेंट लूप लगातार इवेंट अनुक्रम की जाँच करता है
अनुरोधों को एक-एक करके लूप में लेता है
अनुरोध प्रसंस्करण
सरल (गैर-अवरुद्ध) कार्यों को महत्वपूर्ण थ्रेड द्वारा तुरंत नियंत्रित किया जाता है
जटिल/अवरुद्ध कार्यों को थ्रेड समूह में संदर्भित किया जाता है
प्रतिक्रिया चरण
जब ब्लॉकिंग कार्य पूर्ण हो जाते हैं, तो उनके कॉलबैक को कॉलबैक कतार में रखा जाता है
इवेंट लूप कॉलबैक संसाधित करता है और प्रतिक्रिया भेजता है
निर्बाध उदाहरण
उदाहरण: निर्बाध फ़ाइल स्थानांतरण
const fs = require('fs');
console.log('Before file read');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('File contents:', data);
});
console.log('After file read');
ध्यान दें कि फ़ाइल सामग्री से पहले "फ़ाइल पढ़ने के बाद" कैसे मुद्रित होता है, जो दर्शाता है कि Node.js फ़ाइल ऑपरेशन पूरा होने की प्रतीक्षा नहीं करता है।
ब्लॉकिंग कोड
// ब्लॉकिंग कोड उदाहरण कंसोल.लॉग ('ब्लॉकिंग कोड की शुरुआत'); स्थिरांक डेटा = fs.readFileSync('myfile.txt', 'utf8'); // यहां ब्लॉक करें कंसोल.लॉग ('ब्लॉकिंग ऑपरेशन पूरा हुआ');
निर्बाध कोड
// निर्बाध कोड उदाहरण कंसोल.लॉग('नॉन-ब्लॉकिंग कोड की शुरुआत'); fs.readFile('myfile.txt', 'utf8', (err, data) => { यदि (त्रुटि) त्रुटि फेंको; कंसोल.लॉग('नॉन-ब्लॉकिंग ऑपरेशन पूरा हुआ'); }); कंसोल.लॉग ('यह फ़ाइल पढ़ने से पहले चलता है');
महत्वपूर्ण अंतर:
पहला उदाहरण फ़ाइल के चरणबद्ध होने तक पूरी प्रक्रिया को अवरुद्ध करता है, जबकि दूसरा उदाहरण फ़ाइल के चरणबद्ध होने के दौरान अन्य परिचालनों को जारी रखने की अनुमति देता है।
Node.js का उपयोग कब करें
Node.js :
I/O-बाध्य अनुप्रयोग
फ़ाइल संचालन, डेटाबेस क्वेरीज़, नेटवर्क अनुरोध
वास्तविक समय अनुप्रयोग
चैट ऐप्स, लाइव नोटिफिकेशन, सहयोग उपकरण
शहद की मक्खी
रेस्टफुल सेवाएँ, ग्राफक्यूएल एपीआई
माइक्रोसर्विसेज
छोटी, स्वतंत्र सेवाएँ
नोट:
Node.js CPU- , . , :
- कार्यकर्ता धागे का उपयोग करना
- सबसे उपयुक्त भाषा में एक माइक्रोसर्विस बनाना
- प्राकृतिक पूरकों का उपयोग करना
सारांश
Node.js , .
यह न्यूनतम संसाधनों के साथ एक साथ हजारों कनेक्शनों को संभालने की अनुमति देता है।
एकाधिक एक साथ कनेक्शन
एकाधिक समवर्ती कनेक्शनों को कुशलतापूर्वक संभालता है
I/O-बाध्य अनुप्रयोग
I/O-बाध्य अनुप्रयोगों के लिए बढ़िया
JavaScript
जावास्क्रिप्ट का उपयोग ब्रांचेंड और सर्वर दोनों पर किया जाता है
बड़ा वातावरण
पैकेजों का एक बड़ा वातावरण (एनपीएम)
अभ्यास
सही शब्द चुनें।
Node.js is built on a ______ architecture.