नोड.जेएस

From Vigyanwiki
नोड.js
Original author(s)रयान डाहल
Developer(s)ओपनJS फाउंडेशन
Initial releaseMay 27, 2009; 15 years ago (2009-05-27)[1]
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)
Written inC, C++, जावास्क्रिप्ट
Operating systemz/OS, लिनक्स,, मैक OS, माइक्रोसॉफ्ट विंडोज, स्मार्ट OS, फ्री BSD, ओपन BSD, IBM AIX[2]
TypeRuntime environment
LicenseMIT License[3][4]

नोड.js एक क्रॉस-प्लेटफॉर्म, ओपन-सोर्स सर्वर है। जो माइक्रोसॉफ़्ट विंडोज़, लिनक्स, यूनिक्स, मैक OS, जो अन्य पर चल सकता है। नोड.js एक बैक-एंड जावास्क्रिप्ट कार्यावधि परिवेश है, जो V8 जावास्क्रिप्ट इंजन पर चलते है, और एक वेब ब्राउज़र के बाहर जावास्क्रिप्ट कोड निष्पादित करते है।

नोड.js डेवलपर्स को कमांड लाइन टूल लिखने और सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का उपयोग करने देता है। सर्वर पर जावास्क्रिप्ट कोड चलाने की क्षमता अधिकांशतः उपयोगकर्ता के वेब ब्राउज़र पर पेज भेजे जाने से पहले गतिशील वेब पेज सामग्री उत्पन्न करने के लिए किया जाता है। फलस्वरूप, नोड.js एक जावास्क्रिप्ट प्रतिमान का प्रतिनिधित्व करते है,[5] सर्वर बनाम उपभोगता-ओर प्रोग्रामिंग के लिए विभिन्न भाषाओं का उपयोग करने के विपरीत, एक ही प्रोग्रामिंग भाषा के आसपास वेब-एप्लिकेशन विकास को एकीकृत करता है।

नोड.js में एक वृत्तांत-संचालित वास्तुकला है जो अतुल्यकालिक I/O में सक्षम है। इन डिज़ाइन विकल्पों का उद्देश्य कई इनपुट/आउटपुट संचालन के साथ-साथ वास्तविक समय वेब अनुप्रयोगों के साथ वेब अनुप्रयोगों में संदेश प्रवाह और विस्‍तार क्षमता को अनुकूलित करना है।[6]

नोड.js वितरित विकास परियोजना पहले नोड.js फाउंडेशन द्वारा शासित थी,[7] और अब ओपन JS फाउंडेशन बनाने के लिए JS फाउंडेशन के साथ विलय कर दिया गया है। ओपन JS फाउंडेशन को लिनक्स फाउंडेशन के सहयोगात्मक परियोजना कार्यक्रम द्वारा सुविधा प्रदान की जाती है।[8]

नोड.js सॉफ़्टवेयर के संगठित उपयोगकर्ताओं में गोडैडी,[9] ग्रूपन,[10] IBM,[11] लिंक्डइन,[12][13] माइक्रोसाफ्ट,[14][15] नेटफ्लिक्स,[16] पेपैल,[17][18] SAP[19] वॉल-मार्ट ,[20] याहू !,[21] और अमेज़ॅन वेब सर्विसेज सम्मलित हैं। [22]


इतिहास

रयान डाहल, 2010 में नोड.js के निर्माता

नोड.js का आरंभ 2009 में रयान डाहल द्वारा लिखा गया था,[23] पहले सर्वर-साइड जावास्क्रिप्ट क्लाइमेट, नेटस्केप के लाइववायर प्रो वेब आरंभ के लिये लगभग 13 साल बाद विकसित किया था।[24] प्रारंभिक लोकार्पण केवल लिनक्स और मैक OS का समर्थन किया था।[25]

डाहल ने 2009 में सबसे लोकप्रिय वेब सर्वर,अपाचे HTTP सर्वर की सीमित संभावनाओं की आलोचना की, जिसमें बहुत सारे समवर्ती कनेक्शन और कोड बनाने का सबसे सामान्य (अनुक्रमिक प्रोग्रामिंग) को संभालने की क्षमता थी, जब कोड अवरुद्ध हो जाता था। तो एक साथ कनेक्शन की स्थिति में संपूर्ण प्रक्रिया या निहित एकाधिक निष्पादन स्तंभ हो जाती थी।[26]

डाहल ने 8 नवंबर 2009 को उद्घाटन यूरोपीय js कॉन्फ में इस परियोजना का प्रदर्शन किया था।[27][28][29] नोड.js ने गूगल के क्रोम V8 जावास्क्रिप्ट इंजन, एक इवेंट लूप और एक निम्न-स्तरीय I/O अप्लिकेशन प्रोग्रामिंग अंतरफलक को संयोजित किया था।[30]

जनवरी 2010 में, नोड.js क्लाइमेट के लिए npm नामक एक पैकेज प्रबंधक उपस्थित किया गया था।[31] पैकेज प्रबंधक प्रोग्रामर्स के लिए नोड.js पैकेजों के स्रोत कोड को प्रकाशित और समिति करना और आसान बनाना है और इसे पैकेजों की स्थापना, अद्यतन और संस्थापन को सरल बनाने के लिए डिज़ाइन किया गया है। [30]

जून 2011 में, माइक्रोसॉफ्ट और जॉयंट ने नोड.js का एक देशी विंडोज़ संस्करण लागू किया थ।[33] विंडोज़ को सपोर्ट करने वाला पहला नोड.js बिल्ड जुलाई 2011 में जारी किया गया था।

जनवरी 2012 में, डाहल ने परियोजना का प्रबंधन करने के लिए सहकर्मी और NPM निर्माता इसहाक श्लुएटर को बढ़ावा दिया था। [32] जनवरी 2014 में, श्लुएटर ने घोषणा की कि टिमोथी J. फॉन्टेन इस परियोजना का नेतृत्व करेंगे।[33]

दिसंबर 2014 में, फेडर इंडुटनी ने io.js प्रारंभ किया, जो नोड.js का एक हिस्सा है। जॉयंट के शासन पर आंतरिक संघर्ष के कारण, io.js को एक अलग तकनीकी समिति के साथ एक खुले शासन विकल्प के रूप में बनाया गया था।[34][35] नोड.js के विपरीत,[36] लेखकों ने io.js को गूगल V8 जावास्क्रिप्ट इंजन की नवीनतम लोकार्पण के साथ अद्यतन रखने की योजना बनाई है।[37]

फरवरी 2015 में, एक तटस्थ नोड.js फाउंडेशन बनाने के प्रयोजन की घोषणा की गई थी। जून 2015 तक, नोड.js और io.js समुदायों ने नोड.js फाउंडेशन के तहत एक साथ काम करने के लिए मतदान किया था।[38]

सितंबर 2015 में, नोड.JS V0.12 और IO.JS V3.3 को वापस नोड V4.0 में एक साथ मिला दिया गया था।[39] इस विलय से नोड.js में V8 ES6 सुविधाएँ और एक दीर्घकालिक समर्थन लोकार्पण चक्र लाया था।[40] 2016 तक, IO.JS वेबसाइट अनुशंसा करती है कि डेवलपर्स नोड.js पर वापस चले जाएं और मर्ज के कारण IO.JS की कोई और लोकार्पण की योजना नहीं बनाई गई थी।[41]

2019 में, JS फाउंडेशन और नोड.js फाउंडेशन का विलय होकर ओपन JS फाउंडेशन बना गया था।

15 मार्च 2023 को, नोड.js 19.8.1 प्रचलित किया गया था।[42]


अवलोकन

नोड.js जावास्क्रिप्ट और "मॉड्यूल" के संग्रह का उपयोग करके वेब सर्वर और नेटवर्किंग टूल के निर्माण की अनुमति देता है जो विभिन्न मुख्य कार्यात्मकताओं को संभालते हैं।[27][30][43][44][45] फाइल सिस्टम I/O, नेटवर्किंग (DNS, HTTP, TCP, TLS/SSL, या UDP), बाइनरी डेटा, क्रिप्टोग्राफी फ़ंक्शंस, डेटा स्ट्रीम और अन्य मुख्य फ़ंक्शंस के लिए मॉड्यूल प्रदान किए जाते हैं।[30][44][46] नोड.js के मॉड्यूल सर्वर अनुप्रयोगों को लिखने की जटिलता को कम करने के लिए डिज़ाइन किए गए API का उपयोग करते हैं।[30][44]

जावास्क्रिप्ट एकमात्र ऐसी भाषा है जिसका नोड.js मूल रूप से समर्थन करता है, परंतु कई कंपाइल-टू-JS भाषायें उपलब्ध हैं।[47] परिणामस्वरूप, नोड.js अनुप्रयोगों को कॉफीस्क्रिप्ट,[48] डार्ट, टाइपस्क्रिप्ट, क्लोजरस्क्रिप्ट और अन्य में लिखा जा सकता है।

नोड.js का उपयोग मुख्य रूप से वेब सर्वर जैसे नेटवर्क प्रोग्राम बनाने के लिए किया जाता है।[43] नोड.js और PHP के बीच सबसे महत्वपूर्ण अंतर यह है कि PHP में अधिकांश फ़ंक्शन में एक खण्ड समूह होता हैं, जबकि नोड.js फ़ंक्शन ग़ैर-अवरोधन होते हैं,[49][50] और पूर्णता या विफलता का संकेत देने के लिए पुन: साक्षात्कार का उपयोग करते है।[43]

नोड.js आधिकारिक तौर पर लिनक्स, मैक OS और माइक्रोसॉफ़्ट विंडोज़ 8.1 और सर्वर 2012 पर समर्थित है,[2]स्मार्ट OS और IBM AIX के लिए टियर 2 समर्थन और फ्री BSD के लिए प्रायोगिक समर्थन के साथ ओपन BSD भी काम करता है, और LTS संस्करण IBM i (AS/400) के लिए उपलब्ध है।[51] प्रदान किया गया स्रोत कोड आधिकारिक तौर पर समर्थित ऑपरेटिंग सिस्टम के समान ऑपरेटिंग सिस्टम पर भी बनाया जा सकता है या नॉनस्टॉप OS[52] और यूनिक्स सर्वर जैसे अन्य का समर्थन करने के लिए तीसरे पक्ष द्वारा संशोधित किया जा सकता है।

प्लेटफार्म आर्किटेक्चर

नोड.js वेब सर्वर पर वृत्तांत-संचालित प्रोग्रामिंग लाता है, जिससे जावास्क्रिप्ट में शीघ्र वेब सर्वर का विकास संभव हो पाता है।[30] डेवलपर्स वृत्तांत-संचालित प्रोग्रामिंग के एक सरलीकृत मॉडल का उपयोग करके थ्रेडिंग का उपयोग किए बिना स्केलेबल सर्वर बना सकते हैं जो किसी कार्य के पूरा होने का संकेत देने के लिए पुन: साक्षात्कार का उपयोग करता है।[30] नोड.js एक अंकन भाषा को यूनिक्स नेटवर्क प्रोग्रामिंग की ऊर्जा से जोड़ता है।[30]

नोड.js को गूगल के V8 जावास्क्रिप्ट इंजन के शीर्ष पर बनाया गया था चूंकि यह BSD लाइसेंस के तहत ओपन-सोर्स किया गया था। यह HTTP, DNS और TCP जैसे इंटरनेट बुनियादी सिद्धांतों में कुशल है।[27] जावास्क्रिप्ट भी एक प्रसिद्ध भाषा थी, जिसने नोड.js को वेब डेवलपर समुदाय के लिए सुलभ बना दिया था।[27]


उद्योग समर्थन

यहां नोड.js के लिए हजारों ओपन-सोर्स लाइब्रेरी हैं, उनमें से अधिकांश NPM वेबसाइट पर आयोजन किया जाता हैं। ऐसे कई डेवलपर सम्मेलन और कार्यक्रम हैं जो नोड.js समुदाय का समर्थन करते हैं, जिनमें नोडकॉन्फ़, नोड इंटरएक्टिव और नोड शिखर सम्मेलन के साथ-साथ कई क्षेत्रीय कार्यक्रम भी सम्मलित हैं।

ओपन-सोर्स समुदाय ने अनुप्रयोगों के विकास में तेजी लाने के लिए वेब फ्रेमवर्क विकसित किया है। इस तरह के फ्रेमवर्क में कनेक्ट, एक्सप्रेस.JS, सॉकेट.IO, फेदर्स.JS, कोआ.JS, हापी.JS, सेल्स.JS, मेटियोर, डर्बी और कई अन्य सम्मलित हैं।[30][53] अन्य भाषायें या माइक्रोसॉफ्ट .NET जैसे कार्यावधि परिस्थति के साथ इंटरफेस करने के लिए विभिन्न पैकेज भी बनाए गए हैं।[54]

आधुनिक डेस्कटॉप ITI विशेष रूप से नोड.js अनुप्रयोगों के लिए संपादन और डिबगिंग सुविधाएँ प्रदान करते हैं। ऐसे ITI में एटम, ब्रैकेट्स, जेटब्रेन्स MPS वेबस्टॉर्म,[55][56] माइक्रोसॉफ्ट विजुअल स्टूडियो[57] सम्मलित हैं।[58][59][60][61]) नेटबीन्स,[62] नोडेक्लिप्स एनाइड स्टूडियो[63] (एक्लिप्स-आधारित), और विजुअल स्टूडियो कोड[64][65] कुछ ऑनलाइन वेब-आधारित IDE भी नोड.js का समर्थन करते हैं, जैसे कोडेनी वेयर, कोडेनवी, क्लाउड 9 IDE, कोडिंग, और नोड-रेड में विजुअल फ्लो एडिटर है।

नोड.js जेलास्टिक, गूगल क्लाउड प्लेटफ़ॉर्म, AWS इलास्टिक बीनस्टॉक, जॉयंट और अन्य जैसे कई क्लाउड-होस्टिंग प्लेटफ़ॉर्म पर समर्थित है।

लोकार्पण

रिलीस[66] स्टेटस कोड नेम रिलीज़ डेट मेंटेनेंस एन्ड
Old version, no longer maintained: 0.10.x Old version, no longer maintained: End-of-Life 2013-03-11 2016-10-31
Old version, no longer maintained: 0.12.x Old version, no longer maintained: End-of-Life 2015-02-06 2016-12-31
Old version, no longer maintained: 4.x Old version, no longer maintained: End-of-Life आर्गन[67] 2015-09-08 2018-04-30
Old version, no longer maintained: 5.x Old version, no longer maintained: End-of-Life 2015-10-29 2016-06-30
Old version, no longer maintained: 6.x Old version, no longer maintained: End-of-Life बोरोन[67] 2016-04-26 2019-04-30
Old version, no longer maintained: 7.x Old version, no longer maintained: End-of-Life 2016-10-25 2017-06-30
Old version, no longer maintained: 8.x Old version, no longer maintained: End-of-Life कार्बन[67] 2017-05-30 2019-12-31
Old version, no longer maintained: 9.x Old version, no longer maintained: End-of-Life 2017-10-01 2018-06-30
Old version, no longer maintained: 10.x Old version, no longer maintained: End-of-Life दुबनीम[67] 2018-04-24 2021-04-30
Old version, no longer maintained: 11.x Old version, no longer maintained: End-of-Life 2018-10-23 2019-06-01
Old version, no longer maintained: 12.x Old version, no longer maintained: End-of-Life अर्बियम[67] 2019-04-23 2022-04-30
Old version, no longer maintained: 13.x Old version, no longer maintained: End-of-Life 2019-10-22 2020-06-01
Older version, yet still maintained: 14.x Older version, yet still maintained: Maintenance LTS फेर्मियम[67] 2020-04-21 2023-04-30
Old version, no longer maintained: 15.x Old version, no longer maintained: End-of-Life 2020-10-20 2021-06-01
Older version, yet still maintained: 16.x Older version, yet still maintained: Maintenance LTS गैलियम[67] 2021-04-20 2023-09-11[68]
Old version, no longer maintained: 17.x Old version, no longer maintained: End-of-Life 2021-10-19 2022-06-01
Older version, yet still maintained: 18.x Older version, yet still maintained: Active LTS हाइड्रोजन[67] 2022-04-19 2025-04-30
Current stable version: 19.x Current stable version: Active 2022-10-18 2023-06-01
Future release: 20.x Future release: Current न्यू वर्शन[69] 2023-04-18 2026-04-30
Future release: 21.x Future release: Planned [67] 2023-10-17 2024-05-30
Future release: 22.x Future release: Planned [67] 2024-04-15 2027-04-28
Future release: 23.x Future release: Planned [67] 2024-10-14 2025-05-27
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

नोड.js की नई प्रमुख लोकार्पण हर छह महीने में गिटहब मुख्य शाखा से अवरोध की जाती हैं। सम-संख्या वाले संस्करण अप्रैल में अवरोध कीये जाते हैं और विषम-संख्या वाले संस्करण अक्टूबर में अवरोध होते हैं। जब एक नया विषम संस्करण प्रचलित किया जाता है, तो पिछला सम संस्करण दीर्घकालिक समर्थन के संक्रमण से गुजरता है, जो उस संस्करण को LTS नामित होने की डेट से 18 महीने का सक्रिय समर्थन देता है। इन 18 महीनों की समाप्ति के बाद, LTS लोकार्पण को 12 महीने की अतिरिक्त रखरखाव सहायता प्राप्त होता है। एक सक्रिय संस्करण को वर्तमान लोकार्पण में आने के कुछ सप्ताह बाद परिवर्तनों के ग़ैर-खंडन बैकपोर्ट प्राप्त होते हैं। एक निर्वाह लोकार्पण को केवल महत्वपूर्ण सुधार और प्रलेखन अद्यतन प्राप्त होते हैं।[67] LTS वर्किंग ग्रुप नोड.js फाउंडेशन की तकनीकी संचालन समिति के सहयोग से रणनीति और नीति का प्रबंधन करता है।

पारिभाषिक विवरण

नोड.js एक जावास्क्रिप्ट कार्यावधि परिवेश है जो आने वाले अनुरोधों को एक लूप में संसाधित करता है, जिसे इवेंट लूप कहा जाता है।

आंतरिक

नोड.js अतुल्यकालिक घटनाओं को संभालने के लिए हुड के नीचे लिबुव का उपयोग करता है। लिबव विंडोज और पॉज़िक्स-आधारित सिस्टम जैसे लिनक्स, मैक OS, OSS ऑन नॉनस्टॉप और यूनिक्स दोनों पर नेटवर्क और फ़ाइल सिस्टम कार्यक्षमता के लिए एक अमूर्त परत है। HTTP समर्थन के लिए नोड.js nghttp2 पर निर्भर करता है। संस्करण 20 के अनुसार, नोड.js ada लाइब्रेरी का उपयोग करता है जो अप-टू-डेट व्हाट WG URL अनुपालन प्रदान करता है। संस्करण 19.5 के अनुसार, तेजी से यूनिकोड सत्यापन और ट्रांसकोडिंग के लिए नोड.js simdutf लाइब्रेरी का उपयोग करता है .

थ्रेडिंग

नोड.js ग़ैर -अवरोधन I/O कॉल का उपयोग करते हुए एकल थ्रेडिंग इवेंट लूप पर काम करता है, जो इसे थ्रेड संदर्भ स्विचिंग की लागत के बिना हजारों समवर्ती कनेक्शनों का समर्थन करने की अनुमति देता है।[70] पर्यवेक्षक पैटर्न का उपयोग करने वाले सभी अनुरोधों के बीच एक एकल थ्रेड डिज़ाइन अत्यधिक समवर्ती अनुप्रयोगों के निर्माण के लिए है, जहां I/O करने वाले किसी भी फ़ंक्शन को पुन: साक्षात्कार का उपयोग करना होगा। एकल-थ्रेडेड इवेंट लूप को समायोजित करने के लिए, नोड.js लिब्यू लाइब्रेरी का उपयोग करता है - जो बदले में, एक निश्चित आकार के थ्रेड पूल का उपयोग करता है जो कुछ गैर-अवरुद्ध अतुल्यकालिक I/O संचालन को संभालता है।[6]

एक थ्रेड पूल नोड.js में समानांतर कार्यों के निष्पादन को संभालता है। मुख्य थ्रेड फ़ंक्शन निर्देश कार्यों को पोस्ट करता है, जिसे थ्रेड पूल में निष्पादित करता है। नेटवर्किंग जैसे स्वाभाविक रूप से गैर-अवरुद्ध सिस्टम फ़ंक्शंस मूल-पृष्ठ ग़ैर-अवरोधन सॉकेट में अनुवादित होते हैं, जबकि अंतर्निहित रूप से अवरोधन सिस्टम फ़ंक्शंस जैसे फ़ाइल I/O अपने स्वयं के थ्रेड्स पर अवरुद्ध नियम से चलते हैं। जब थ्रेड पूल में कोई थ्रेड किसी कार्य को पूरा करता है, तो यह मुख्य थ्रेड को सूचित करता है, जो बदले में जागता है और पंजीकृत पुन: साक्षात्कार निष्पादित करता है।

इस एकल-थ्रेडेड दृष्टिकोण का नकारात्मक पहलू यह है कि नोड.js क्लस्टर जैसे अतिरिक्त मॉड्यूल का उपयोग किए बिना जिस मशीन पर यह चल रहा है उसके CPU कोर की संख्या में वृद्धि करके ऊर्ध्वाधर स्केलिंग की अनुमति नहीं देता है,[49] स्ट्रॉन्गलूप प्रोसेस मैनेजर,[71] [72] चूंकि, डेवलपर्स लिबव थ्रेड पूल में थ्रेड्स की डिफ़ॉल्ट संख्या बढ़ा सकते हैं। सर्वर ऑपरेटिंग सिस्टम (OS) द्वारा इन थ्रेड्स को कई कोर में वितरित करने की संभावना है।[73] एक और समस्या यह है कि लंबे समय तक चलने वाली गणनाएं और अन्य CPU-बाध्य कार्य पूरा होने तक पूरे इवेंट-लूप को रोक देते हैं।[citation needed]

V8

V8 जावास्क्रिप्ट निष्पादन इंजन है जिसे प्रारंभ में गूगल क्रोम के लिए बनाया गया था। इसे 2008 में गूगल द्वारा ओपन-सोर्स किया गया था। C++ में लिखा गया, V8 कार्यावधि पर जावास्क्रिप्ट स्रोत कोड को मूल मशीन कोड में संकलित करता है।[6] 2016 तक, इसमें इग्निशन, एक बायटेकोड इंटरप्रेटर भी सम्मलित है।

पैकेज प्रबंधन

npm नोड.js सर्वर प्लेटफ़ॉर्म के लिए पूर्व-स्थापित पैकेज प्रबंधक है। यह npm रजिस्ट्री से नोड.js प्रोग्राम स्थापित करता है, तृतीय-पक्ष नोड.js प्रोग्रामों की स्थापना और प्रबंधन को व्यवस्थित करता है। NPM रजिस्ट्री में पैकेज साधारण सहायक लाइब्रेरी जैसे लॉडैश से लेकर ग्रंट जैसे टास्क रनर तक हो सकते हैं।

एकीकृत API

नोड.js को एक ब्राउज़र के साथ एक साइट, एक डेटाबेस के साथ जोड़ा जा सकता है जो JSON डेटा (जैसे कि पोस्टग्रे SQL,[74] मोंगो DB, या काउच DB) और JSON को एकीकृत जावास्क्रिप्ट डेवलपमेंट स्टैक के लिए सपोर्ट करता है। MVC, MVP, MVVM इत्यादि जैसे अनिवार्य रूप से सर्वर-साइड विकास पैटर्न के अनुकूलन के साथ, नोड.js क्लाइंट साइड और सर्वर साइड के बीच समान मॉडल और सेवा इंटरफ़ेस के पुन: उपयोग की अनुमति देता है।

इवेंट लूप

नोड.js ऑपरेटिंग सिस्टम के साथ पंजीकृत होता है इसलिए OS इसे कनेक्शन के बारे में सूचित करता है और पुन: साक्षात्कार प्रचलित करता है। नोड.js कार्यावधि के अन्दर, प्रत्येक कनेक्शन एक छोटा संचय आवंटन है। परंपरागत रूप से, अपेक्षाकृत हेवीवेट OS प्रक्रियाएं या थ्रेड प्रत्येक कनेक्शन को संभालते हैं। नोड.js प्रक्रियाओं या थ्रेड्स के अतिरिक्त विस्‍तार क्षमता के लिए इवेंट लूप का उपयोग करता है।[75] अन्य इवेंट-संचालित सर्वरों के विपरीत, नोड.js के इवेंट लूप को स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है। इसके अतिरिक्त, पुन: साक्षात्कार परिभाषित किए जाते हैं, और सर्वर स्वचालित रूप से पुन: साक्षात्कार परिभाषा के अंत में इवेंट लूप में प्रवेश करता है। जब कोई और पुन: साक्षात्कार नहीं किया जाना हो तो नोड.js इवेंट लूप से बाहर निकल जाता है।

वेबअसेंबली

नोड.js वेबअसेंबली को सपोर्ट करता है और नोड 14 के अनुसार इसमें WASI,वेबअसेंबली सिस्टम इंटरफ़ेस का प्रयोगात्मक सपोर्ट है।

मूल बंधन

नोड.js N-API नामक C-आधारित API के माध्यम से "ऐड-ऑन" बनाने का एक नियम प्रदान करता है, जिसका उपयोग .node C/C++ में लिखे स्रोत कोड से लोड करने योग्य नोड मॉड्यूल का उत्पादन करने के लिए किया जा सकता है।[76] मॉड्यूल को सीधे मेमोरी में लोड किया जा सकता है और JS क्लाइमेट के अन्दर से सरल कॉमन JS मॉड्यूल के रूप में निष्पादित किया जा सकता है। N-API का कार्यान्वयन आंतरिक C/C++ नोड.js और V8 ऑब्जेक्ट्स पर निर्भर करता है, जिसके लिए उपयोगकर्ताओं को अपने मूल स्रोत कोड में नोड.js विशिष्ट हेडर आयात (सम्मलित) करने की आवश्यकता होती है।[76]

चूँकि नोड.js API बाइनरी स्तर पर परिवर्तन के अधीन है, ठीक से काम करने के लिए मॉड्यूल को विशिष्ट नोड.js संस्करणों के विरुद्ध बनाया है। समस्या का समाधान करने के लिए, तीसरे पक्षों ने API के शीर्ष पर ओपन-सोर्स्ड С/С++ रैपर पेश किए हैं जो समस्या को आंशिक रूप से कम करते हैं। वे इंटरफ़ेस को सरल बनाते हैं, परंतु एक साइड इफेक्ट के रूप में वे जटिलता भी ला सकते हैं जिससे अनुरक्षकों को निपटना पड़ता है। भले ही नोड.js की मुख्य कार्यक्षमता जावास्क्रिप्ट अंतर्निहित लाइब्रेरी में रहती है, C++ में लिखे गए मॉड्यूल का उपयोग क्षमताओं को बढ़ाने और अनुप्रयोगों के प्रदर्शन को बेहतर बनाने के लिए किया जा सकता है।

ऐसे मॉड्यूल तैयार करने के लिए एक उपयुक्त C++ कंपाइलर और आवश्यक हेडर की आवश्यकता होती है, उदाहरण के लिए, gcc, clang या MSVC++ होते है |

N-APIजावा मूल इंटरफ़ेस के समान है।

प्रोजेक्ट गवर्नेंस

22015 में, बड़े नोड.js समुदाय की विभिन्न शाखाओं ने विक्रेता-तटस्थ नोड.js फाउंडेशन के तहत काम करना आरंभ किया है। संगठन का घोषित उद्देश्य "व्यापक रूप से अपनाने को सक्षम करना और एक खुले शासन मॉडल के माध्यम से नोड.js और अन्य संबंधित मॉड्यूल के विकास में तेजी लाने में मदद करना है जो भागीदारी, तकनीकी योगदान और नोड में निवेशित पारिस्थितिकी तंत्र द्वारा दीर्घकालिक प्रबंधन के लिए एक रूपरेखा को प्रोत्साहित करता है।[77]

नोड.js फाउंडेशन तकनीकी संचालन समिति (TSC) नोड.js फाउंडेशन की तकनीकी शासी निकाय है। TSC कोर नोड.js रेपो के साथ-साथ आश्रित और आसन्न परियोजनाओं के लिए जिम्मेदार है। सामान्यतः TSC इन परियोजनाओं का प्रशासन कार्य समूहों या समितियों को सौंपती है।[78] LTS समूह जो दीर्घकालिक समर्थित लोकार्पण का प्रबंधन करता है, ऐसा ही एक समूह है। अन्य सम्मलित समूहों में वेबसाइट, स्ट्रीम, बिल्ड, डायग्नोस्टिक्स, i18n, इवेंजेलिज्म, डॉकर, एडऑन API, बेंचमार्किंग, पोस्ट-मॉर्टम, अंतर्राष्ट्रीय, प्रलेखन और परीक्षण सम्मलित हैं।[79]

अगस्त 2017 में, TSC के एक तिहाई सदस्यों ने परियोजना की आचार संहिता से संबंधित विवाद के कारण त्यागपत्र दे दिया था।[80]


यह भी देखें

  • डेनो—जावास्क्रिप्ट और टाइपस्क्रिप्ट के लिए एक बैक-एंड कार्यावधि परिवेश, जिसे रयान डाहल ने भी बनाया है।

संदर्भ

  1. "node-v0.x-archive on GitHub". GitHub. Retrieved 2 August 2014.
  2. Jump up to: 2.0 2.1 "nodejs/node". GitHub. 13 April 2022.
  3. "node/LICENSE at master". GitHub. Node.js Foundation. 17 September 2018. Retrieved 17 September 2018.
  4. "The MIT License". Open Source Initiative. 17 September 2018. Retrieved 17 September 2018.
  5. gcuomo (24 October 2013). "जावास्क्रिप्ट हर जगह और तीन एमिगोस (जंगली नीले रंग में!)". www.ibm.com. Retrieved 24 October 2013.
  6. Jump up to: 6.0 6.1 6.2 Laurent Orsini (7 November 2013). "आपको नोड.जेएस के बारे में क्या जानने की आवश्यकता है". readwrite.com. Retrieved 6 February 2022.
  7. "नोड.जेएस फाउंडेशन - नोड.जेएस". nodejs.org. Retrieved 4 July 2015.
  8. "लिनक्स फाउंडेशन सहयोगी परियोजनाएं". linuxfoundation.org. 4 July 2015. Retrieved 4 July 2015.
  9. Why GoDaddy's Nodejitsu deal is great for Node.js, VentureBeat, 10 February 2015
  10. Geitgey, Adam (30 October 2013). "I-Tier: Dismantling the Monoliths". Groupon. Archived from the original on 10 September 2015. Retrieved 30 April 2014.
  11. "आईबीएम ब्लूमिक्स". IBM. Retrieved 4 July 2015.
  12. "आप कभी विश्वास नहीं करेंगे कि लिंक्डइन ने अपना नया iPad ऐप कैसे बनाया". VentureBeat. 2 May 2012. Retrieved 10 May 2012.
  13. "Blazing fast node.js: 10 performance tips from LinkedIn Mobile". Retrieved 7 April 2015.
  14. Baxter-Reynolds, Matthew (9 November 2011). "यही कारण है कि आपको खुश होना चाहिए कि Microsoft Node.js को अपना रहा है". The Guardian. London. Retrieved 10 May 2012.
  15. "WebMatrix - फ्रंट एंड वेब डेवलपर्स ध्यान दें (ASP.NET, PHP, node.js और अधिक)". Retrieved 2 August 2014.
  16. Node.js in Flames 19 November 2014
  17. "Clash of the Titans: Releasing the Kraken, NodeJS @paypal". fluentconf.com. 28 May 2013. Archived from the original on 15 December 2021. Retrieved 11 September 2013.
  18. "ऐसी सभी कंपनियाँ और उनके उत्पाद जिनमें Node.js का उपयोग किया जाता है". GitHub. Retrieved 2 August 2014.
  19. "एसएपी ऐपबिल्डर". SAP. 10 March 2014. Archived from the original on 12 February 2014. Retrieved 10 October 2018.
  20. "वॉलमार्ट Node.js का उपयोग क्यों कर रहा है". VentureBeat. 24 January 2012. Retrieved 10 May 2012.
  21. "आपको वास्तव में क्यों चाहिए (ए) नोड.जेएस विकास सेवाएं". codebrahma. 10 January 2018. Retrieved 10 January 2018.
  22. "Node.js वेब ऐप तैनात करें - AWS पर अत्यधिक उपलब्ध Node.js वेब एप्लिकेशन लॉन्च करें और चलाएं". amazon.com. Retrieved 3 October 2020.
  23. "About Node.js, and why you should add Node.js to your skill set?". Training.com. Training.com. 11 September 2016. Retrieved 23 October 2016.
  24. Staff, CNET News (15 October 1996). "नेटस्केप इंट्रानेट हमले को खोलता है". CNET (in English). Retrieved 20 April 2017.
  25. Ryan Dahl (9 November 2010). "जॉयंट और नोड". Google Groups. Retrieved 5 February 2015.
  26. Garbar, Dzmitry. "PHP 7 vs Node.js? They Can Be Partners, Not Competitors For a Developer!". belitsoft.com. Retrieved 21 December 2016.
  27. Jump up to: 27.0 27.1 27.2 27.3 Sams Teach Yourself Node.js in 24 Hours, Sams Publishing, 05-Sep-2012
  28. Ubl, Malte (9 September 2009). "JSConf.eu 2009, Berlin, Germany". www.jsconf.eu. Retrieved 9 September 2009.
  29. "Ryan Dahl: Original Node.js presentation". Archived from the original on 15 December 2021 – via www.youtube.com.
  30. Jump up to: 30.0 30.1 30.2 30.3 30.4 30.5 30.6 30.7 30.8 Professional Node.js: Building JavaScript Based Scalable Software, John Wiley & Sons, 01-Oct-2012
  31. "एनपीएम की सबसे पुरानी रिलीज". GitHub. Retrieved 27 July 2016.
  32. Dahl, Ryan. "नया द्वारपाल". Retrieved 26 October 2013.
  33. Schlueter, Isaac (15 January 2014). "Node.js का अगला चरण". Retrieved 21 January 2014.
  34. Krill, Paul (4 December 2014). "क्यों io.js ने फोर्क नोड.जेएस का फैसला किया". JavaWorld. Retrieved 15 December 2014.
  35. Q&A: Why io.js decided to fork Node.js, InfoWorld Tech Watch
  36. Ben Noordhuis (12 November 2014). "Issue 3692: function suddenly becomes undefined". V8 JavaScript Engine Issues. Retrieved 2 February 2015.
  37. Mikeal, Rogers (28 January 2015). "io.js की स्थिति". Retrieved 2 February 2015.
  38. "Node.js फाउंडेशन सामुदायिक सहयोग को आगे बढ़ाता है, नए सदस्यों की घोषणा करता है और तकनीकी प्रशासन की पुष्टि करता है". Archived from the original on 24 June 2015. Retrieved 4 July 2015.
  39. "Node.js Foundation नई रिलीज में Node.js और io.js को सिंगल कोडबेस में जोड़ता है". nodejs.org. 14 September 2015. Retrieved 28 January 2016.
  40. "io.js और Node.js विलय". medium.com. 19 May 2015. Retrieved 27 June 2015.
  41. Io.js, JavaScript I/O, "io.js has merged with the Node.js project again. There won't be any further io.js releases. All of the features in io.js are available in Node.js v4 and above."
  42. "पिछला विज्ञप्ति". Node.js.
  43. Jump up to: 43.0 43.1 43.2 Node.js for PHP Developers, O'Reilly Media, Inc., 2013
  44. Jump up to: 44.0 44.1 44.2 Node.js Essentials, Packt Publishing, 10-Nov-2015
  45. Smashing Node.js: JavaScript Everywhere, John Wiley & Sons, 14-Aug-2012
  46. Modules, Nodejs Website
  47. "जेएस को संकलित करने वाली भाषाओं की सूची". Github.
  48. Node.js पर CoffeeScript. O'Reilly Media, Inc. 15 April 2013. ISBN 9781449316846. Retrieved 17 May 2015.
  49. Jump up to: 49.0 49.1 "Node.js क्लस्टर मॉड्यूल". nodejs.org. Retrieved 19 October 2017.
  50. "Node.js's child_process module". nodejs.org. Retrieved 19 October 2017.
  51. Foundation, Node js. "पैकेज मैनेजर के माध्यम से Node.js इंस्टॉल करना". Node.js (in English). Retrieved 19 May 2019.
  52. "बॉमबोरा - नॉनस्टॉप के लिए Node.js". infrasoft.com.au. Infrasoft. Retrieved 14 August 2015.
  53. Express.js Guide: The Comprehensive Book on Express.js, Azat Mardan, 28-May-2014
  54. Edge.js bridges the gap between Node.js and .NET, TechRepublic, Tony Patton, 1 July 2014
  55. Node.js, WebStorm supports integration with the Node.js runtime environment, WebStorm Help
  56. Running and Debugging Node.js, WebStorm Help
  57. "विजुअल स्टूडियो के लिए Node.js टूल्स". microsoft.com. Retrieved 1 February 2016.
  58. soywiz/typescript-node-definitions TypeScript's typings for some popular node.js modules, GitHub
  59. DefinitelyTyped, GitHub
  60. "उच्च गुणवत्ता वाले टाइपस्क्रिप्ट प्रकार की परिभाषाओं के लिए भंडार". definitelytyped.org. Archived from the original on 3 February 2016.
  61. ImageBoard, A Node.js + Express + MongoDB application built using TypeScript on the server, TypeScript Samples
  62. Krill, Paul (10 November 2015). "Node.js takes center stage in NetBeans 8.1". infoworld.com. InfoWorld. Retrieved 10 November 2015.
  63. Nodeclipse, Enide -- Node.JS development in Eclipse, Nodeclipse Website
  64. Hello Visual Studio Code (with NodeJS), Channel 9, Microsoft
  65. Node.js Applications with VS Code, Visual Studio Code
  66. "Releases". Node.js.
  67. Jump up to: 67.00 67.01 67.02 67.03 67.04 67.05 67.06 67.07 67.08 67.09 67.10 67.11 "nodejs/Release". GitHub (in English). Retrieved 3 May 2018.
  68. Bringing forward the End-of-Life Date for Node.js 16, Node.js Website
  69. "Node.js 20: Latest Features and Enhancements". Radixweb (in English). Retrieved 20 April 2023.
  70. "Node.js w/1M concurrent connections!". caustik's blog. 19 August 2012.
  71. "स्ट्रांगलूप प्रोसेस मैनेजर". strong-pm.io.
  72. "GitHub - Unitech/pm2: Production process manager for Node.js applications with a built-in load balancer". GitHub. 12 June 2021.
  73. Aleksander Kasiuk (22 April 2015). "नोड.जेएस में थ्रेड्स के साथ समस्याओं पर - फ्यूचर प्रोसेसिंग".
  74. "PostgreSQL: Documentation: 9.4: JSON Types". www.postgresql.org. Retrieved 20 October 2016.
  75. About Node.js, Node.js Website
  76. Jump up to: 76.0 76.1 "C++ addons | Node.js v14.12.0 Documentation". nodejs.org. Retrieved 26 September 2020.
  77. Foundation, Node.js. "Node.js Foundation | Node.js". nodejs.org (in English). Retrieved 8 March 2017.
  78. "nodejs/TSC". GitHub (in English). Retrieved 8 March 2017.
  79. Foundation, Node.js. "Working Groups | Node.js". nodejs.org (in English). Retrieved 8 March 2017.
  80. Whittaker, Zack, After governance breakdown, Node.js leaders fight for its survival, ZDNet, 25 August 2017


अग्रिम पठन


बाहरी संबंध