नोड.जेएस
| Original author(s) | रयान डाहल |
|---|---|
| Developer(s) | ओपनJS फाउंडेशन |
| Initial release | May 27, 2009[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. |
| Written in | C, C++, जावास्क्रिप्ट |
| Operating system | z/OS, लिनक्स,, मैक OS, माइक्रोसॉफ्ट विंडोज, स्मार्ट OS, फ्री BSD, ओपन BSD, IBM AIX[2] |
| Type | Runtime environment |
| License | MIT License[3][4] |
नोड.js एक क्रॉस-प्लेटफॉर्म, ओपन-सोर्स सर्वर है। जो माइक्रोसॉफ़्ट विंडोज़, लिनक्स, यूनिक्स, मैक OS, और अन्य पर चल सकता है। Node.js एक बैक-एंड जावास्क्रिप्ट रनटाइम क्लाइमेट है, जो V8 जावास्क्रिप्ट इंजन पर चलता है, और एक वेब ब्राउज़र के बाहर जावास्क्रिप्ट कोड निष्पादित करता है।
Node.js डेवलपर्स को कमांड लाइन टूल लिखने और सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का उपयोग करने देता है। सर्वर पर जावास्क्रिप्ट कोड चलाने की क्षमता का उपयोग अक्सर उपयोगकर्ता के वेब ब्राउज़र पर पेज भेजे जाने से पहले गतिशील वेब पेज सामग्री उत्पन्न करने के लिए किया जाता है। नतीजतन, Node.js एक "हर जगह जावास्क्रिप्ट" प्रतिमान का प्रतिनिधित्व करता है,[5] सर्वर बनाम क्लाइंट-साइड प्रोग्रामिंग के लिए विभिन्न भाषाओं का उपयोग करने के विपरीत, एक ही प्रोग्रामिंग भाषा के आसपास वेब-एप्लिकेशन विकास को एकीकृत करता है।
Node.js में एक इवेंट-संचालित आर्किटेक्चर है जो एसिंक्रोनस I/O में सक्षम है। इन डिज़ाइन विकल्पों का उद्देश्य कई इनपुट/आउटपुट संचालन के साथ-साथ वास्तविक समय वेब अनुप्रयोगों के साथ वेब अनुप्रयोगों में थ्रूपुट और स्केलेबिलिटी को अनुकूलित करना है।[6]
Node.js वितरित विकास परियोजना पहले Node.js फाउंडेशन द्वारा शासित थी,[7] और अब ओपन JS फाउंडेशन बनाने के लिए JS फाउंडेशन के साथ विलय कर दिया गया है। ओपन JS फाउंडेशन को लिनक्स फाउंडेशन के सहयोगात्मक परियोजना कार्यक्रम द्वारा सुविधा प्रदान की जाती है।[8]
Node.js सॉफ़्टवेयर के कॉर्पोरेट उपयोगकर्ताओं में गोडैडी,[9] ग्रूपन,[10] IBM,[11] लिंक्डइन,[12][13] माइक्रोसाफ्ट,[14][15] नेटफ्लिक्स,[16] पेपैल,[17][18] SAP[19] वॉल-मार्ट ,[20] याहू !,[21] और अमेज़ॅन वेब सर्विसेज शामिल हैं। [22]
इतिहास
Node.js को शुरुआत में 2009 में रयान डाहल द्वारा लिखा गया था,[23] पहले सर्वर-साइड जावास्क्रिप्ट वातावरण, नेटस्केप के लाइववायर प्रो वेब की शुरुआत के लगभग तेरह साल बाद विकसित किया था।[24] प्रारंभिक रिलीज़ केवल Linux और Mac OS का समर्थन किया था।[25]
डाहल ने 2009 में सबसे लोकप्रिय वेब सर्वर,अपाचे HTTP सर्वर की सीमित संभावनाओं की आलोचना की, जिसमें बहुत सारे समवर्ती कनेक्शन (10,000 और अधिक तक) और कोड बनाने का सबसे आम तरीका (अनुक्रमिक प्रोग्रामिंग) को संभालने की क्षमता थी, जब कोड या तो अवरुद्ध हो जाता था। एक साथ कनेक्शन के मामले में संपूर्ण प्रक्रिया या निहित एकाधिक निष्पादन स्टैक है।[26]
डाहल ने 8 नवंबर 2009 को उद्घाटन यूरोपीय जेएसकॉन्फ में इस परियोजना का प्रदर्शन किया।[27][28][29] Node.js ने Google के Chrome V8 JavaScript इंजन, एक इवेंट लूप और एक निम्न-स्तरीय I/O अप्लिकेशन प्रोग्रामिंग अंतरफलक को संयोजित किया था।[30]
जनवरी 2010 में, Node.js वातावरण के लिए npm नामक एक पैकेज मैनेजर पेश किया गया था।[31] पैकेज प्रबंधक प्रोग्रामर्स के लिए Node.js पैकेजों के स्रोत कोड को प्रकाशित और साझा करना आसान बनाता है और इसे पैकेजों की स्थापना, अद्यतन और अनइंस्टॉलेशन को सरल बनाने के लिए डिज़ाइन किया गया है। [30]
जून 2011 में, माइक्रोसॉफ्ट और जॉयंट ने Node.js का एक देशी विंडोज़ संस्करण लागू किया।[33] विंडोज़ को सपोर्ट करने वाला पहला Node.js बिल्ड जुलाई 2011 में जारी किया गया था।
जनवरी 2012 में, डाहल ने परियोजना का प्रबंधन करने के लिए सहकर्मी और एनपीएम (सॉफ्टवेयर) निर्माता इसहाक श्लुएटर को बढ़ावा देते हुए पद छोड़ दिया था। [32] जनवरी 2014 में, श्लुएटर ने घोषणा की कि टिमोथी जे. फॉन्टेन इस परियोजना का नेतृत्व करेंगे।[33]
दिसंबर 2014 में, फेडर इंडुटनी ने io.js शुरू किया, जो Node.js का एक हिस्सा है। जॉयंट के शासन पर आंतरिक संघर्ष के कारण, io.js को एक अलग तकनीकी समिति के साथ एक खुले शासन विकल्प के रूप में बनाया गया था।[34][35] Node.js के विपरीत,[36] लेखकों ने io.js को Google V8 जावास्क्रिप्ट इंजन की नवीनतम रिलीज़ के साथ अद्यतन रखने की योजना बनाई है।[37]
फरवरी 2015 में, एक तटस्थ Node.js फाउंडेशन बनाने के इरादे की घोषणा की गई थी। जून 2015 तक, Node.js और io.js समुदायों ने Node.js फाउंडेशन के तहत एक साथ काम करने के लिए मतदान किया।[38]
सितंबर 2015 में, Node.js v0.12 और io.js v3.3 को वापस Node v4.0 में एक साथ मिला दिया गया।[39] इस विलय से Node.js में V8 ES6 सुविधाएँ और एक दीर्घकालिक समर्थन रिलीज़ चक्र लाया।[40] 2016 तक, io.js वेबसाइट अनुशंसा करती है कि डेवलपर्स Node.js पर वापस चले जाएं और मर्ज के कारण io.js की कोई और रिलीज़ की योजना नहीं बनाई गई है।[41]
2019 में, JS फाउंडेशन और Node.js फाउंडेशन का विलय होकर OpenJS फाउंडेशन बना गया।
15 मार्च 2023 को, Node.js 19.8.1 जारी किया गया था।[42]
अवलोकन
Node.js जावास्क्रिप्ट और "मॉड्यूल" के संग्रह का उपयोग करके वेब सर्वर और नेटवर्किंग टूल के निर्माण की अनुमति देता है जो विभिन्न मुख्य कार्यात्मकताओं को संभालते हैं।[27][30][43][44][45] फाइल सिस्टम I/O, नेटवर्किंग (DNS, HTTP, TCP, TLS/SSL, या UDP), बाइनरी डेटा, क्रिप्टोग्राफी फ़ंक्शंस, डेटा स्ट्रीम और अन्य मुख्य फ़ंक्शंस के लिए मॉड्यूल प्रदान किए जाते हैं।[30][44][46] Node.js के मॉड्यूल सर्वर अनुप्रयोगों को लिखने की जटिलता को कम करने के लिए डिज़ाइन किए गए एपीआई का उपयोग करते हैं।[30][44]
जावास्क्रिप्ट एकमात्र ऐसी भाषा है जिसका Node.js मूल रूप से समर्थन करता है, लेकिन कई कंपाइल-टू-JS लैंगुएजेस उपलब्ध हैं।[47] परिणामस्वरूप, Node.js अनुप्रयोगों को कॉफीस्क्रिप्ट,[48] डार्ट, टाइपस्क्रिप्ट, क्लोजरस्क्रिप्ट और अन्य में लिखा जा सकता है।
Node.js का उपयोग मुख्य रूप से वेब सर्वर जैसे नेटवर्क प्रोग्राम बनाने के लिए किया जाता है।[43] Node.js और PHP के बीच सबसे महत्वपूर्ण अंतर यह है कि PHP में अधिकांश फ़ंक्शन पूरा होने तक ब्लॉक होते हैं (कमांड पिछले कमांड समाप्त होने के बाद ही निष्पादित होते हैं), जबकि Node.js फ़ंक्शन नॉन-ब्लॉकिंग होते हैं (कमांड समवर्ती या समानांतर में भी निष्पादित होते हैं,[49][50] और पूर्णता या विफलता का संकेत देने के लिए कॉलबैक का उपयोग) करते है।[43]
Node.js आधिकारिक तौर पर Linux, macOS और Microsoft Windows 8.1 और सर्वर 2012 (और बाद में) पर समर्थित है,[2]SmartOS और IBM AIX के लिए टियर 2 समर्थन और FreeBSD के लिए प्रायोगिक समर्थन के साथ OpenBSD भी काम करता है, और LTS संस्करण IBM i (AS/400) के लिए उपलब्ध है।[51] प्रदान किया गया स्रोत कोड आधिकारिक तौर पर समर्थित ऑपरेटिंग सिस्टम के समान ऑपरेटिंग सिस्टम पर भी बनाया जा सकता है या नॉनस्टॉप ओएस[52] और यूनिक्स सर्वर जैसे अन्य का समर्थन करने के लिए तीसरे पक्ष द्वारा संशोधित किया जा सकता है।
प्लेटफार्म आर्किटेक्चर
Node.js वेब सर्वर पर इवेंट-संचालित प्रोग्रामिंग लाता है, जिससे जावास्क्रिप्ट में तेज वेब सर्वर का विकास संभव हो पाता है।[30] डेवलपर्स इवेंट-संचालित प्रोग्रामिंग के एक सरलीकृत मॉडल का उपयोग करके थ्रेडिंग का उपयोग किए बिना स्केलेबल सर्वर बना सकते हैं जो किसी कार्य के पूरा होने का संकेत देने के लिए कॉलबैक का उपयोग करता है।[30] Node.js एक स्क्रिप्टिंग भाषा (जावास्क्रिप्ट) की आसानी को यूनिक्स नेटवर्क प्रोग्रामिंग की शक्ति से जोड़ता है।[30]
Node.js को Google के V8 JavaScript इंजन के शीर्ष पर बनाया गया था क्योंकि यह BSD लाइसेंस के तहत ओपन-सोर्स किया गया था। यह HTTP, DNS और TCP जैसे इंटरनेट बुनियादी सिद्धांतों में कुशल है।[27] जावास्क्रिप्ट भी एक प्रसिद्ध भाषा थी, जिसने Node.js को वेब डेवलपर समुदाय के लिए सुलभ बना दिया था।[27]
उद्योग समर्थन
यहां Node.js के लिए हजारों ओपन-सोर्स लाइब्रेरी हैं, उनमें से अधिकांश एनपीएम वेबसाइट पर होस्ट की गई हैं। ऐसे कई डेवलपर सम्मेलन और कार्यक्रम हैं जो Node.js समुदाय का समर्थन करते हैं, जिनमें NodeConf, Node इंटरएक्टिव और नोड शिखर सम्मेलन के साथ-साथ कई क्षेत्रीय कार्यक्रम भी शामिल हैं।
ओपन-सोर्स समुदाय ने अनुप्रयोगों के विकास में तेजी लाने के लिए वेब फ्रेमवर्क विकसित किया है। इस तरह के फ्रेमवर्क में कनेक्ट, एक्सप्रेस.जेएस, सॉकेट.आईओ, फेदर्स.जेएस, कोआ.जेएस, हापी.जेएस, सेल्स.जेएस, मेटियोर, डर्बी और कई अन्य शामिल हैं।[30][53] अन्य भाषाओं या माइक्रोसॉफ्ट .NET जैसे रनटाइम वातावरण के साथ इंटरफेस करने के लिए विभिन्न पैकेज भी बनाए गए हैं।[54]
आधुनिक डेस्कटॉप आईडीई विशेष रूप से Node.js अनुप्रयोगों के लिए संपादन और डिबगिंग सुविधाएँ प्रदान करते हैं। ऐसे आईडीई में एटम, ब्रैकेट्स, जेटब्रेन्स MPS वेबस्टॉर्म,[55][56] माइक्रोसॉफ्ट विजुअल स्टूडियो[57] शामिल हैं।[58][59][60][61]) नेटबीन्स,[62] नोडेक्लिप्स एनाइड स्टूडियो[63] (एक्लिप्स-आधारित), और विजुअल स्टूडियो कोड[64][65] कुछ ऑनलाइन वेब-आधारित IDE भी Node.js का समर्थन करते हैं, जैसे Codeanywhere, Codenvy, Cloud9 IDE, Koding, और Node-RED में विजुअल फ्लो एडिटर है।
Node.js जेलास्टिक, गूगल क्लाउड प्लेटफ़ॉर्म, AWS इलास्टिक बीनस्टॉक, जॉयंट और अन्य जैसे कई क्लाउड-होस्टिंग प्लेटफ़ॉर्म पर समर्थित है।
लोकार्पण
| रिलीस[66] | स्टेटस | कोड नेम | रिलीज़ डेट | मेंटेनेंस एन्ड |
|---|---|---|---|---|
| 0.10.x | End-of-Life | 2013-03-11 | 2016-10-31 | |
| 0.12.x | End-of-Life | 2015-02-06 | 2016-12-31 | |
| 4.x | End-of-Life | आर्गन[67] | 2015-09-08 | 2018-04-30 |
| 5.x | End-of-Life | 2015-10-29 | 2016-06-30 | |
| 6.x | End-of-Life | बोरोन[67] | 2016-04-26 | 2019-04-30 |
| 7.x | End-of-Life | 2016-10-25 | 2017-06-30 | |
| 8.x | End-of-Life | कार्बन[67] | 2017-05-30 | 2019-12-31 |
| 9.x | End-of-Life | 2017-10-01 | 2018-06-30 | |
| 10.x | End-of-Life | दुबनीम[67] | 2018-04-24 | 2021-04-30 |
| 11.x | End-of-Life | 2018-10-23 | 2019-06-01 | |
| 12.x | End-of-Life | अर्बियम[67] | 2019-04-23 | 2022-04-30 |
| 13.x | End-of-Life | 2019-10-22 | 2020-06-01 | |
| 14.x | Maintenance LTS | फेर्मियम[67] | 2020-04-21 | 2023-04-30 |
| 15.x | End-of-Life | 2020-10-20 | 2021-06-01 | |
| 16.x | Maintenance LTS | गैलियम[67] | 2021-04-20 | 2023-09-11[68] |
| 17.x | End-of-Life | 2021-10-19 | 2022-06-01 | |
| 18.x | Active LTS | हाइड्रोजन[67] | 2022-04-19 | 2025-04-30 |
| 19.x | Active | 2022-10-18 | 2023-06-01 | |
| 20.x | Current | न्यू वर्शन[69] | 2023-04-18 | 2026-04-30 |
| 21.x | Planned | [67] | 2023-10-17 | 2024-05-30 |
| 22.x | Planned | [67] | 2024-04-15 | 2027-04-28 |
| 23.x | Planned | [67] | 2024-10-14 | 2025-05-27 |
Legend: Old version Older version, still maintained Latest version Future release | ||||
Node.js की नई प्रमुख रिलीज़ हर छह महीने में गिटहब मुख्य शाखा से काटी जाती हैं। सम-संख्या वाले संस्करण अप्रैल में काटे जाते हैं और विषम-संख्या वाले संस्करण अक्टूबर में काटे जाते हैं। जब एक नया विषम संस्करण जारी किया जाता है, तो पिछला सम संस्करण दीर्घकालिक समर्थन के संक्रमण से गुजरता है, जो उस संस्करण को एलटीएस नामित होने की तारीख से 18 महीने का सक्रिय समर्थन देता है। इन 18 महीनों की समाप्ति के बाद, एलटीएस रिलीज़ को 12 महीने की अतिरिक्त रखरखाव सहायता प्राप्त होता है। एक सक्रिय संस्करण को वर्तमान रिलीज़ में आने के कुछ सप्ताह बाद परिवर्तनों के नॉन-ब्रेकिंग बैकपोर्ट प्राप्त होते हैं। एक रखरखाव रिलीज़ को केवल महत्वपूर्ण सुधार और दस्तावेज़ीकरण अद्यतन प्राप्त होते हैं।[67] एलटीएस वर्किंग ग्रुप नोड.जेएस फाउंडेशन की तकनीकी संचालन समिति के सहयोग से रणनीति और नीति का प्रबंधन करता है।
पारिभाषिक विवरण
Node.js एक जावास्क्रिप्ट रनटाइम वातावरण है जो आने वाले अनुरोधों को एक लूप में संसाधित करता है, जिसे इवेंट लूप कहा जाता है।
आंतरिक
Node.js अतुल्यकालिक घटनाओं को संभालने के लिए हुड के नीचे libuv का उपयोग करता है। लिबव विंडोज और पॉज़िक्स-आधारित सिस्टम जैसे लिनक्स, मैकओएस, ओएसएस ऑन नॉनस्टॉप और यूनिक्स दोनों पर नेटवर्क और फ़ाइल सिस्टम कार्यक्षमता के लिए एक अमूर्त परत है। HTTP समर्थन के लिए Node.js nghttp2 पर निर्भर करता है। संस्करण 20 के अनुसार, Node.js ada लाइब्रेरी का उपयोग करता है जो अप-टू-डेट WHATWG URL अनुपालन प्रदान करता है। संस्करण 19.5 के अनुसार, तेजी से यूनिकोड सत्यापन और ट्रांसकोडिंग के लिए Node.js simdutf लाइब्रेरी का उपयोग करता है .
थ्रेडिंग
Node.js नॉन-ब्लॉकिंग I/O कॉल का उपयोग करते हुए सिंगल थ्रेडिंग इवेंट लूप पर काम करता है, जो इसे थ्रेड संदर्भ स्विचिंग की लागत के बिना हजारों समवर्ती कनेक्शनों का समर्थन करने की अनुमति देता है।[70] ऑब्जर्वर पैटर्न का उपयोग करने वाले सभी अनुरोधों के बीच एक एकल थ्रेड साझा करने का डिज़ाइन अत्यधिक समवर्ती अनुप्रयोगों के निर्माण के लिए है, जहां I/O करने वाले किसी भी फ़ंक्शन को कॉलबैक का उपयोग करना होगा। सिंगल-थ्रेडेड इवेंट लूप को समायोजित करने के लिए, Node.js libuv लाइब्रेरी का उपयोग करता है - जो बदले में, एक निश्चित आकार के थ्रेड पूल का उपयोग करता है जो कुछ गैर-अवरुद्ध एसिंक्रोनस I/O संचालन को संभालता है।[6]
एक थ्रेड पूल Node.js में समानांतर कार्यों के निष्पादन को संभालता है। मुख्य थ्रेड फ़ंक्शन कॉल कार्यों को साझा कार्य कतार में पोस्ट करता है, जिसे थ्रेड पूल में थ्रेड खींचता है और निष्पादित करता है। नेटवर्किंग जैसे स्वाभाविक रूप से गैर-अवरुद्ध सिस्टम फ़ंक्शंस कर्नेल-साइड नॉन-ब्लॉकिंग सॉकेट में अनुवादित होते हैं, जबकि अंतर्निहित रूप से ब्लॉकिंग सिस्टम फ़ंक्शंस जैसे फ़ाइल I/O अपने स्वयं के थ्रेड्स पर अवरुद्ध तरीके से चलते हैं। जब थ्रेड पूल में कोई थ्रेड किसी कार्य को पूरा करता है, तो यह मुख्य थ्रेड को सूचित करता है, जो बदले में जागता है और पंजीकृत कॉलबैक निष्पादित करता है।
इस एकल-थ्रेडेड दृष्टिकोण का नकारात्मक पहलू यह है कि Node.js क्लस्टर जैसे अतिरिक्त मॉड्यूल का उपयोग किए बिना जिस मशीन पर यह चल रहा है उसके सीपीयू कोर की संख्या में वृद्धि करके ऊर्ध्वाधर स्केलिंग की अनुमति नहीं देता है,[49] स्ट्रॉन्गलूप प्रोसेस मैनेजर,[71] या अपराह्न 2[72] हालाँकि, डेवलपर्स libuv थ्रेड पूल में थ्रेड्स की डिफ़ॉल्ट संख्या बढ़ा सकते हैं। सर्वर ऑपरेटिंग सिस्टम (OS) द्वारा इन थ्रेड्स को कई कोर में वितरित करने की संभावना है।[73] एक और समस्या यह है कि लंबे समय तक चलने वाली गणनाएं और अन्य सीपीयू-बाध्य कार्य पूरा होने तक पूरे इवेंट-लूप को रोक देते हैं।[citation needed]
V8
V8 जावास्क्रिप्ट निष्पादन इंजन है जिसे प्रारंभ में Google Chrome के लिए बनाया गया था। इसे 2008 में Google द्वारा ओपन-सोर्स किया गया था। C++ में लिखा गया, V8 रनटाइम पर जावास्क्रिप्ट स्रोत कोड को मूल मशीन कोड में संकलित करता है।[6] 2016 तक, इसमें इग्निशन, एक बायटेकोड दुभाषिया भी शामिल है।
पैकेज प्रबंधन
npm Node.js सर्वर प्लेटफ़ॉर्म के लिए पूर्व-स्थापित पैकेज प्रबंधक है। यह npm रजिस्ट्री से Node.js प्रोग्राम स्थापित करता है, तृतीय-पक्ष Node.js प्रोग्रामों की स्थापना और प्रबंधन को व्यवस्थित करता है। एनपीएम रजिस्ट्री में पैकेज साधारण सहायक लाइब्रेरी जैसे लॉडैश से लेकर ग्रंट जैसे टास्क रनर तक हो सकते हैं।
एकीकृत API
Node.js को एक ब्राउज़र के साथ एक साइट, एक डेटाबेस के साथ जोड़ा जा सकता है जो JSON डेटा (जैसे कि PostgreSQL,[74] MongoDB, या CouchDB) और JSON को एकीकृत जावास्क्रिप्ट डेवलपमेंट स्टैक के लिए सपोर्ट करता है। MVC, MVP, MVVM इत्यादि जैसे अनिवार्य रूप से सर्वर-साइड विकास पैटर्न के अनुकूलन के साथ, नोड.जेएस क्लाइंट साइड और सर्वर साइड के बीच समान मॉडल और सेवा इंटरफ़ेस के पुन: उपयोग की अनुमति देता है।
इवेंट लूप
Node.js ऑपरेटिंग सिस्टम के साथ पंजीकृत होता है इसलिए OS इसे कनेक्शन के बारे में सूचित करता है और कॉलबैक जारी करता है। Node.js रनटाइम के भीतर, प्रत्येक कनेक्शन एक छोटा heap allocation है। परंपरागत रूप से, अपेक्षाकृत हेवीवेट ओएस प्रक्रियाएं या थ्रेड प्रत्येक कनेक्शन को संभालते हैं। Node.js प्रक्रियाओं या थ्रेड्स के बजाय स्केलेबिलिटी के लिए इवेंट लूप का उपयोग करता है।[75] अन्य इवेंट-संचालित सर्वरों के विपरीत, Node.js के इवेंट लूप को स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है। इसके बजाय, कॉलबैक परिभाषित किए जाते हैं, और सर्वर स्वचालित रूप से कॉलबैक परिभाषा के अंत में इवेंट लूप में प्रवेश करता है। जब कोई और कॉलबैक नहीं किया जाना हो तो Node.js इवेंट लूप से बाहर निकल जाता है।
वेबअसेंबली
Node.js WebAssembly को सपोर्ट करता है औऔर Node 14 के अनुसार इसमें WASI, WebAssembly सिस्टम इंटरफ़ेस का प्रयोगात्मक सपोर्ट है।
मूल बंधन
Node.js एन-एपीआई नामक सी-आधारित एपीआई के माध्यम से "ऐड-ऑन" बनाने का एक तरीका प्रदान करता है, जिसका उपयोग .node C/C++ में लिखे स्रोत कोड से लोड करने योग्य (आयात योग्य) .नोड मॉड्यूल का उत्पादन करने के लिए किया जा सकता है।[76] मॉड्यूल को सीधे मेमोरी में लोड किया जा सकता है और जेएस वातावरण के भीतर से सरल कॉमनजेएस मॉड्यूल के रूप में निष्पादित किया जा सकता है। N-API का कार्यान्वयन आंतरिक C/C++ Node.js और V8 ऑब्जेक्ट्स पर निर्भर करता है, जिसके लिए उपयोगकर्ताओं को अपने मूल स्रोत कोड में नोड.जेएस विशिष्ट हेडर आयात (सम्मलित) करने की आवश्यकता होती है।[76]
चूँकि Node.js API बाइनरी स्तर पर परिवर्तन के अधीन है, ठीक से काम करने के लिए मॉड्यूल को विशिष्ट Node.js संस्करणों के विरुद्ध बनाया और शिप किया जाना है। समस्या का समाधान करने के लिए, तीसरे पक्षों ने एपीआई के शीर्ष पर ओपन-सोर्स्ड С/С++ रैपर पेश किए हैं जो समस्या को आंशिक रूप से कम करते हैं। वे इंटरफ़ेस को सरल बनाते हैं, लेकिन एक साइड इफेक्ट के रूप में वे जटिलता भी ला सकते हैं जिससे अनुरक्षकों को निपटना पड़ता है। भले ही Node.js की मुख्य कार्यक्षमता जावास्क्रिप्ट अंतर्निहित लाइब्रेरी में रहती है, C++ में लिखे गए मॉड्यूल का उपयोग क्षमताओं को बढ़ाने और अनुप्रयोगों के प्रदर्शन को बेहतर बनाने के लिए किया जा सकता है।
ऐसे मॉड्यूल तैयार करने के लिए एक उपयुक्त C++ कंपाइलर और आवश्यक हेडर की आवश्यकता होती है (बाद वाले आमतौर पर Node.js के साथ ही भेजे जाते हैं), उदाहरण के लिए, gcc, clang या MSVC++ |
एन-एपीआई जावा मूल इंटरफ़ेस के समान है।
प्रोजेक्ट गवर्नेंस
22015 में, बड़े Node.js समुदाय की विभिन्न शाखाओं ने विक्रेता-तटस्थ Node.js फाउंडेशन के तहत काम करना शुरू किया। संगठन का घोषित उद्देश्य "व्यापक रूप से अपनाने को सक्षम करना और एक खुले शासन मॉडल के माध्यम से Node.js और अन्य संबंधित मॉड्यूल के विकास में तेजी लाने में मदद करना है जो भागीदारी, तकनीकी योगदान और नोड में निवेशित पारिस्थितिकी तंत्र द्वारा दीर्घकालिक प्रबंधन के लिए एक रूपरेखा को प्रोत्साहित करता है।[77]
Node.js फाउंडेशन तकनीकी संचालन समिति (TSC) Node.js फाउंडेशन की तकनीकी शासी निकाय है। टीएससी कोर नोड.जेएस रेपो के साथ-साथ आश्रित और आसन्न परियोजनाओं के लिए जिम्मेदार है। आम तौर पर टीएससी इन परियोजनाओं का प्रशासन कार्य समूहों या समितियों को सौंपती है।[78] LTS समूह जो दीर्घकालिक समर्थित रिलीज़ का प्रबंधन करता है, ऐसा ही एक समूह है। अन्य मौजूदा समूहों में वेबसाइट, स्ट्रीम, बिल्ड, डायग्नोस्टिक्स, i18n, इवेंजेलिज्म, डॉकर, एडऑन एपीआई, बेंचमार्किंग, पोस्ट-मॉर्टम, अंतर्राष्ट्रीय, दस्तावेज़ीकरण और परीक्षण शामिल हैं।[79]
अगस्त 2017 में, टीएससी के एक तिहाई सदस्यों ने परियोजना की आचार संहिता से संबंधित विवाद के कारण इस्तीफा दे दिया।[80]
यह भी देखें
- डेनो—जावास्क्रिप्ट और टाइपस्क्रिप्ट के लिए एक बैक-एंड रनटाइम वातावरण, जिसे रयान डाहल ने भी बनाया है।
संदर्भ
- ↑ "node-v0.x-archive on GitHub". GitHub. Retrieved 2 August 2014.
- ↑ 2.0 2.1 "nodejs/node". GitHub. 13 April 2022.
- ↑ "node/LICENSE at master". GitHub. Node.js Foundation. 17 September 2018. Retrieved 17 September 2018.
- ↑ "The MIT License". Open Source Initiative. 17 September 2018. Retrieved 17 September 2018.
- ↑ gcuomo (24 October 2013). "जावास्क्रिप्ट हर जगह और तीन एमिगोस (जंगली नीले रंग में!)". www.ibm.com. Retrieved 24 October 2013.
- ↑ 6.0 6.1 6.2 Laurent Orsini (7 November 2013). "आपको नोड.जेएस के बारे में क्या जानने की आवश्यकता है". readwrite.com. Retrieved 6 February 2022.
- ↑ "नोड.जेएस फाउंडेशन - नोड.जेएस". nodejs.org. Retrieved 4 July 2015.
- ↑ "लिनक्स फाउंडेशन सहयोगी परियोजनाएं". linuxfoundation.org. 4 July 2015. Retrieved 4 July 2015.
- ↑ Why GoDaddy's Nodejitsu deal is great for Node.js, VentureBeat, 10 February 2015
- ↑ Geitgey, Adam (30 October 2013). "I-Tier: Dismantling the Monoliths". Groupon. Archived from the original on 10 September 2015. Retrieved 30 April 2014.
- ↑ "आईबीएम ब्लूमिक्स". IBM. Retrieved 4 July 2015.
- ↑ "आप कभी विश्वास नहीं करेंगे कि लिंक्डइन ने अपना नया iPad ऐप कैसे बनाया". VentureBeat. 2 May 2012. Retrieved 10 May 2012.
- ↑ "Blazing fast node.js: 10 performance tips from LinkedIn Mobile". Retrieved 7 April 2015.
- ↑ Baxter-Reynolds, Matthew (9 November 2011). "यही कारण है कि आपको खुश होना चाहिए कि Microsoft Node.js को अपना रहा है". The Guardian. London. Retrieved 10 May 2012.
- ↑ "WebMatrix - फ्रंट एंड वेब डेवलपर्स ध्यान दें (ASP.NET, PHP, node.js और अधिक)". Retrieved 2 August 2014.
- ↑ Node.js in Flames 19 November 2014
- ↑ "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.
- ↑ "ऐसी सभी कंपनियाँ और उनके उत्पाद जिनमें Node.js का उपयोग किया जाता है". GitHub. Retrieved 2 August 2014.
- ↑ "एसएपी ऐपबिल्डर". SAP. 10 March 2014. Archived from the original on 12 February 2014. Retrieved 10 October 2018.
- ↑ "वॉलमार्ट Node.js का उपयोग क्यों कर रहा है". VentureBeat. 24 January 2012. Retrieved 10 May 2012.
- ↑ "आपको वास्तव में क्यों चाहिए (ए) नोड.जेएस विकास सेवाएं". codebrahma. 10 January 2018. Retrieved 10 January 2018.
- ↑ "Node.js वेब ऐप तैनात करें - AWS पर अत्यधिक उपलब्ध Node.js वेब एप्लिकेशन लॉन्च करें और चलाएं". amazon.com. Retrieved 3 October 2020.
- ↑ "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.
- ↑ Staff, CNET News (15 October 1996). "नेटस्केप इंट्रानेट हमले को खोलता है". CNET (in English). Retrieved 20 April 2017.
- ↑ Ryan Dahl (9 November 2010). "जॉयंट और नोड". Google Groups. Retrieved 5 February 2015.
- ↑ Garbar, Dzmitry. "PHP 7 vs Node.js? They Can Be Partners, Not Competitors For a Developer!". belitsoft.com. Retrieved 21 December 2016.
- ↑ 27.0 27.1 27.2 27.3 Sams Teach Yourself Node.js in 24 Hours, Sams Publishing, 05-Sep-2012
- ↑ Ubl, Malte (9 September 2009). "JSConf.eu 2009, Berlin, Germany". www.jsconf.eu. Retrieved 9 September 2009.
- ↑ "Ryan Dahl: Original Node.js presentation". Archived from the original on 15 December 2021 – via www.youtube.com.
- ↑ 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
- ↑ "एनपीएम की सबसे पुरानी रिलीज". GitHub. Retrieved 27 July 2016.
- ↑ Dahl, Ryan. "नया द्वारपाल". Retrieved 26 October 2013.
- ↑ Schlueter, Isaac (15 January 2014). "Node.js का अगला चरण". Retrieved 21 January 2014.
- ↑ Krill, Paul (4 December 2014). "क्यों io.js ने फोर्क नोड.जेएस का फैसला किया". JavaWorld. Retrieved 15 December 2014.
- ↑ Q&A: Why io.js decided to fork Node.js, InfoWorld Tech Watch
- ↑ Ben Noordhuis (12 November 2014). "Issue 3692: function suddenly becomes undefined". V8 JavaScript Engine Issues. Retrieved 2 February 2015.
- ↑ Mikeal, Rogers (28 January 2015). "io.js की स्थिति". Retrieved 2 February 2015.
- ↑ "Node.js फाउंडेशन सामुदायिक सहयोग को आगे बढ़ाता है, नए सदस्यों की घोषणा करता है और तकनीकी प्रशासन की पुष्टि करता है". Archived from the original on 24 June 2015. Retrieved 4 July 2015.
- ↑ "Node.js Foundation नई रिलीज में Node.js और io.js को सिंगल कोडबेस में जोड़ता है". nodejs.org. 14 September 2015. Retrieved 28 January 2016.
- ↑ "io.js और Node.js विलय". medium.com. 19 May 2015. Retrieved 27 June 2015.
- ↑ 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."
- ↑ "पिछला विज्ञप्ति". Node.js.
- ↑ 43.0 43.1 43.2 Node.js for PHP Developers, O'Reilly Media, Inc., 2013
- ↑ 44.0 44.1 44.2 Node.js Essentials, Packt Publishing, 10-Nov-2015
- ↑ Smashing Node.js: JavaScript Everywhere, John Wiley & Sons, 14-Aug-2012
- ↑ Modules, Nodejs Website
- ↑ "जेएस को संकलित करने वाली भाषाओं की सूची". Github.
- ↑ Node.js पर CoffeeScript. O'Reilly Media, Inc. 15 April 2013. ISBN 9781449316846. Retrieved 17 May 2015.
- ↑ 49.0 49.1 "Node.js क्लस्टर मॉड्यूल". nodejs.org. Retrieved 19 October 2017.
- ↑ "Node.js's child_process module". nodejs.org. Retrieved 19 October 2017.
- ↑ Foundation, Node js. "पैकेज मैनेजर के माध्यम से Node.js इंस्टॉल करना". Node.js (in English). Retrieved 19 May 2019.
- ↑ "बॉमबोरा - नॉनस्टॉप के लिए Node.js". infrasoft.com.au. Infrasoft. Retrieved 14 August 2015.
- ↑ Express.js Guide: The Comprehensive Book on Express.js, Azat Mardan, 28-May-2014
- ↑ Edge.js bridges the gap between Node.js and .NET, TechRepublic, Tony Patton, 1 July 2014
- ↑ Node.js, WebStorm supports integration with the Node.js runtime environment, WebStorm Help
- ↑ Running and Debugging Node.js, WebStorm Help
- ↑ "विजुअल स्टूडियो के लिए Node.js टूल्स". microsoft.com. Retrieved 1 February 2016.
- ↑ soywiz/typescript-node-definitions TypeScript's typings for some popular node.js modules, GitHub
- ↑ DefinitelyTyped, GitHub
- ↑ "उच्च गुणवत्ता वाले टाइपस्क्रिप्ट प्रकार की परिभाषाओं के लिए भंडार". definitelytyped.org. Archived from the original on 3 February 2016.
- ↑ ImageBoard, A Node.js + Express + MongoDB application built using TypeScript on the server, TypeScript Samples
- ↑ Krill, Paul (10 November 2015). "Node.js takes center stage in NetBeans 8.1". infoworld.com. InfoWorld. Retrieved 10 November 2015.
- ↑ Nodeclipse, Enide -- Node.JS development in Eclipse, Nodeclipse Website
- ↑ Hello Visual Studio Code (with NodeJS), Channel 9, Microsoft
- ↑ Node.js Applications with VS Code, Visual Studio Code
- ↑ "Releases". Node.js.
- ↑ 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.
- ↑ Bringing forward the End-of-Life Date for Node.js 16, Node.js Website
- ↑ "Node.js 20: Latest Features and Enhancements". Radixweb (in English). Retrieved 20 April 2023.
- ↑ "Node.js w/1M concurrent connections!". caustik's blog. 19 August 2012.
- ↑ "स्ट्रांगलूप प्रोसेस मैनेजर". strong-pm.io.
- ↑ "GitHub - Unitech/pm2: Production process manager for Node.js applications with a built-in load balancer". GitHub. 12 June 2021.
- ↑ Aleksander Kasiuk (22 April 2015). "नोड.जेएस में थ्रेड्स के साथ समस्याओं पर - फ्यूचर प्रोसेसिंग".
- ↑ "PostgreSQL: Documentation: 9.4: JSON Types". www.postgresql.org. Retrieved 20 October 2016.
- ↑ About Node.js, Node.js Website
- ↑ 76.0 76.1 "C++ addons | Node.js v14.12.0 Documentation". nodejs.org. Retrieved 26 September 2020.
- ↑ Foundation, Node.js. "Node.js Foundation | Node.js". nodejs.org (in English). Retrieved 8 March 2017.
- ↑ "nodejs/TSC". GitHub (in English). Retrieved 8 March 2017.
- ↑ Foundation, Node.js. "Working Groups | Node.js". nodejs.org (in English). Retrieved 8 March 2017.
- ↑ Whittaker, Zack, After governance breakdown, Node.js leaders fight for its survival, ZDNet, 25 August 2017
अग्रिम पठन
- Hughes-Croucher, Tom; Wilson, Mike (April 2012), Up and Running with Node.js, O'Reilly Media, ISBN 978-1-4493-9858-3
- Ornbo, George (September 2012), Sams Teach Yourself Node.js in 24 Hours, SAMS Publishing, ISBN 978-0-672-33595-2
- Teixeira, Pedro (October 2012), Professional Node.js, John Wiley & Sons, ISBN 978-1-118-22754-1
- Randal L. Schwartz and Aaron Newcomb (9 January 2013). "Episode 237: Node.js". twit.tv/show/floss-weekly (Podcast). TWiT.tv. Event occurs at 1:08:13. Retrieved 9 January 2013.
- Gackenheimer, Cory (October 2013), Node.js Recipes: A Problem-Solution Approach, Apress, ISBN 978-1-4302-6058-5
बाहरी संबंध