नोड.जेएस
![]() | |
Original author(s) | Ryan Dahl |
---|---|
Developer(s) | OpenJS Foundation |
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++, JavaScript |
Operating system | z/OS, Linux, macOS, Microsoft Windows, SmartOS, FreeBSD, OpenBSD, IBM AIX[2] |
Type | Runtime environment |
License | MIT License[3][4] |
Node.js एक क्रॉस-प्लेटफॉर्म, खुला स्रोत सॉफ्टवेयर | ओपन-सोर्स सर्वर वातावरण है जो Microsoft Windows, Linux, Unix, macOS, और बहुत कुछ पर चल सकता है। Node.js एक फ्रंटएंड और बैकएंड|बैक-एंड जावास्क्रिप्ट रनटाइम सिस्टम है, जो [[V8 (जावास्क्रिप्ट इंजन)]] जावास्क्रिप्ट इंजन पर चलता है, और एक वेब ब्राउज़र के बाहर जावास्क्रिप्ट कोड निष्पादित करता है।
Node.js डेवलपर्स को कमांड लाइन टूल लिखने और सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का उपयोग करने देता है। उपयोगकर्ता के वेब ब्राउज़र पर पृष्ठ भेजे जाने से पहले सर्वर पर जावास्क्रिप्ट कोड चलाने की क्षमता का उपयोग अक्सर गतिशील वेब पेज सामग्री उत्पन्न करने के लिए किया जाता है। नतीजतन, Node.js हर जगह प्रतिमान एक जावास्क्रिप्ट का प्रतिनिधित्व करता है,[5] सर्वर-बनाम क्लाइंट-साइड प्रोग्रामिंग के लिए विभिन्न भाषाओं का उपयोग करने के विपरीत, एक एकल प्रोग्रामिंग भाषा के आसपास वेब एप्लिकेशन | वेब-एप्लिकेशन विकास को एकीकृत करना।
Node.js में एसिंक्रोनस I/O के लिए सक्षम घटना संचालित वास्तुकला है। इन डिज़ाइन विकल्पों का उद्देश्य वेब अनुप्रयोगों में कई इनपुट/आउटपुट संचालन के साथ-साथ रीयल-टाइम वेब अनुप्रयोगों (जैसे, रीयल-टाइम संचार प्रोग्राम और ब्राउज़र खेल) के लिए THROUGHPUT और scalability को अनुकूलित करना है।[6] Node.js वितरित विकास परियोजना पहले Node.js Foundation द्वारा शासित थी,[7] और अब [[OpenJS Foundation]] बनाने के लिए JS Foundation में विलय हो गया है। OpenJS Foundation को Linux Foundation के सहयोगात्मक परियोजना कार्यक्रम द्वारा सुविधा प्रदान की जाती है।[8] Node.js सॉफ़्टवेयर के कॉर्पोरेट उपयोगकर्ताओं में शामिल हैं GoDaddy,[9] Groupon,[10] आईबीएम,[11] Linkedin ,[12][13] माइक्रोसॉफ्ट,[14][15] NetFlix ,[16] पेपैल,[17][18] आपको पता है[19] वॉल-मार्ट ,[20] याहू !,[21] और अमेज़न वेब सेवाएँ।[22]
इतिहास
Node.js को शुरू में रयान डाहल ने 2009 में लिखा था,[23] पहले सर्वर-साइड जावास्क्रिप्ट वातावरण, नेटस्केप | नेटस्केप के लाइववायर प्रो वेब की शुरुआत के लगभग तेरह साल बाद।[24] आरंभिक रिलीज ने केवल लिनक्स और मैक ओएस एक्स का समर्थन किया। इसके विकास और रखरखाव का नेतृत्व डाहल ने किया और बाद में आनंद द्वारा प्रायोजित किया गया।[25]
डाहल ने 2009 में सबसे लोकप्रिय वेब सर्वर, अपाचे HTTP सर्वर की बहुत सी समवर्ती कनेक्शन (10,000 और अधिक तक) को संभालने की सीमित संभावनाओं की आलोचना की और कोड (अनुक्रमिक प्रोग्रामिंग) बनाने का सबसे आम तरीका, जब कोड या तो अवरुद्ध हो गया एक साथ कनेक्शन के मामले में पूरी प्रक्रिया या निहित कई निष्पादन ढेर।[26] डाहल ने 8 नवंबर, 2009 को उद्घाटन यूरोपीय JSConf में इस परियोजना का प्रदर्शन किया।[27][28][29] Node.js ने Google के Chrome V8 JavaScript इंजन, एक घटना पाश और एक निम्न-स्तरीय इनपुट/आउटपुट|I/O अप्लिकेशन प्रोग्रामिंग अंतरफलक को संयोजित किया।[30] जनवरी 2010 में, Npm (सॉफ़्टवेयर) नामक Node.js वातावरण के लिए एक पैकेज प्रबंधक पेश किया गया था।[31] पैकेज प्रबंधक प्रोग्रामरों के लिए Node.js पैकेजों के स्रोत कोड को प्रकाशित और साझा करना आसान बनाता है और इसे पैकेजों की स्थापना, अद्यतन और स्थापना रद्द करने को आसान बनाने के लिए डिज़ाइन किया गया है।[30]
जून 2011 में, Microsoft और Joyent ने Node.js का मूल Microsoft Windows संस्करण लागू किया।[32] विंडोज़ का समर्थन करने वाला पहला Node.js बिल्ड जुलाई 2011 में जारी किया गया था।
जनवरी 2012 में, डाहल ने परियोजना का प्रबंधन करने के लिए सहकर्मी और एनपीएम (सॉफ्टवेयर) निर्माता इसहाक श्लुटर को बढ़ावा देते हुए अलग हट गए।[33] जनवरी 2014 में, श्ल्यूटर ने घोषणा की कि टिमोथी जे. फॉनटेन इस परियोजना का नेतृत्व करेंगे।[34] दिसंबर 2014 में, Fedor Indutny ने io.js, Node.js का एक कांटा (सॉफ्टवेयर विकास) शुरू किया। जॉयंट के शासन पर आंतरिक संघर्ष के कारण, io.js को एक अलग तकनीकी समिति के साथ एक खुले शासन विकल्प के रूप में बनाया गया था।[35][36] Node.js के विपरीत,[37] लेखकों ने Google V8 JavaScript इंजन के नवीनतम रिलीज़ के साथ io.js को अद्यतित रखने की योजना बनाई है।[38] फरवरी 2015 में, एक तटस्थ नोड.जेएस फाउंडेशन बनाने की मंशा की घोषणा की गई थी। जून 2015 तक, Node.js और io.js समुदायों ने Node.js Foundation के तहत एक साथ काम करने के लिए मतदान किया।[39] सितंबर 2015 में, Node.js v0.12 और io.js v3.3 को वापस एक साथ Node v4.0 में मिला दिया गया।[40] यह मर्ज V8 ECMAScript#ES2015 सुविधाओं को Node.js और एक दीर्घकालिक समर्थन रिलीज चक्र में लाया।[41] 2016 तक, io.js वेबसाइट अनुशंसा करती है कि डेवलपर्स वापस Node.js पर स्विच करें और विलय के कारण io.js की कोई और रिलीज की योजना नहीं है।[42] 2019 में, JS Foundation और Node.js Foundation का विलय होकर OpenJS Foundation बन गया।
15 मार्च 2023 को Node.js 19.8.1 जारी किया गया।[43]
सिंहावलोकन
Node.js जावास्क्रिप्ट का उपयोग करके वेब सर्वर और नेटवर्किंग टूल के निर्माण और मॉड्यूल के संग्रह की अनुमति देता है जो विभिन्न मुख्य कार्यात्मकताओं को संभालते हैं।[27][30][44][45][46] फाइल सिस्टम I/O, नेटवर्किंग (डोमेन की नामांकन प्रणाली, HTTP, प्रसारण नियंत्रण प्रोटोकॉल , ट्रांसपोर्ट लेयर सिक्योरिटी|TLS/SSL, या उपयोगकर्ता डेटाग्राम प्रोटोकॉल), बाइनरी फ़ाइल डेटा (बफ़र्स), क्रिप्टोग्राफी फ़ंक्शंस, स्ट्रीम (कंप्यूटिंग) के लिए मॉड्यूल प्रदान किए जाते हैं। , और अन्य मुख्य कार्य।[30][45][47] Node.js के मॉड्यूल सर्वर अनुप्रयोगों को लिखने की जटिलता को कम करने के लिए डिज़ाइन किए गए API का उपयोग करते हैं।[30][45] जावास्क्रिप्ट एकमात्र भाषा है जो Node.js मूल रूप से समर्थन करती है, लेकिन कई सोर्स-टू-सोर्स कंपाइलर | कंपाइल-टू-जेएस भाषाएं उपलब्ध हैं।[48] परिणामस्वरूप, Node.js अनुप्रयोगों को CoffeeScript में लिखा जा सकता है,[49] डार्ट (प्रोग्रामिंग भाषा), टाइपप्रति , क्लोजरस्क्रिप्ट और अन्य।
Node.js का उपयोग मुख्य रूप से वेब सर्वर जैसे नेटवर्क प्रोग्राम बनाने के लिए किया जाता है।[44] Node.js और PHP के बीच सबसे महत्वपूर्ण अंतर यह है कि PHP एसिंक्रोनस I/O में अधिकांश फ़ंक्शन पूरा होने तक (कमांड केवल पिछले कमांड के समाप्त होने के बाद ही निष्पादित होते हैं), जबकि Node.js फ़ंक्शंस एसिंक्रोनस I/O|नॉन-ब्लॉकिंग हैं (कमांड समवर्ती निष्पादित करते हैं) कंप्यूटिंग या समवर्ती कंप्यूटिंग में भी,[50][51] और कॉलबैक (कंप्यूटर प्रोग्रामिंग) का उपयोग पूरा होने या विफलता का संकेत देने के लिए)।[44]
Node.js आधिकारिक तौर पर Linux पर समर्थित है, macOS और Microsoft Windows 8.1 और सर्वर 2012 (और बाद में),[2]SmartOS और IBM AIX के लिए टियर 2 समर्थन और FreeBSD के लिए प्रायोगिक समर्थन के साथ। OpenBSD भी काम करता है, और IBM i (AS/400) के लिए LTS संस्करण उपलब्ध है।[52] प्रदान किया गया स्रोत कोड भी इसी तरह के ऑपरेटिंग सिस्टम पर बनाया जा सकता है जो आधिकारिक रूप से समर्थित हैं या तीसरे पक्ष द्वारा संशोधित किए जा सकते हैं जैसे कि नॉनस्टॉप ओएस[53] और यूनिक्स सर्वर।
प्लेटफार्म आर्किटेक्चर
Node.js वेब सर्वर पर घटना-संचालित प्रोग्रामिंग लाता है, जिससे जावास्क्रिप्ट में तेज वेब सर्वर का विकास संभव हो जाता है।[30]डेवलपर्स इवेंट-संचालित प्रोग्रामिंग के एक सरलीकृत मॉडल का उपयोग करके थ्रेड (कंप्यूटिंग) का उपयोग किए बिना स्केलेबल सर्वर बना सकते हैं जो किसी कार्य को पूरा करने के संकेत के लिए कॉलबैक का उपयोग करता है।[30] Node.js स्क्रिप्टिंग भाषा (जावास्क्रिप्ट) की आसानी को यूनिक्स नेटवर्क प्रोग्रामिंग की शक्ति से जोड़ता है।[30]
Node.js को Google के V8 JavaScript इंजन के शीर्ष पर बनाया गया था क्योंकि यह BSD लाइसेंस के तहत ओपन-सोर्स था। यह एचटीटीपी, डीएनएस और ट्रांसमिशन कंट्रोल प्रोटोकॉल जैसे इंटरनेट फंडामेंटल में कुशल है।[27]JavaScript भी एक प्रसिद्ध भाषा थी, जो Node.js को वेब डेवलपर के लिए सुलभ बनाती थी।[27]
उद्योग समर्थन
Node.js के लिए हजारों ओपन-सोर्स लाइब्रेरी हैं, उनमें से ज्यादातर Npm (सॉफ्टवेयर) वेबसाइट पर होस्ट की गई हैं। कई डेवलपर सम्मेलन और कार्यक्रम हैं जो Node.js समुदाय का समर्थन करते हैं, जिसमें NodeConf, Node Interactive और Node शिखर सम्मेलन के साथ-साथ कई क्षेत्रीय कार्यक्रम शामिल हैं।
ओपन-सोर्स समुदाय ने अनुप्रयोगों के विकास में तेजी लाने के उल्का (वेब फ्रेमवर्क) विकसित किया है। इस तरह वेब ढांचा में कनेक्ट, एक्सप्रेस.जेएस, सॉकेट.आईओ, पंख.जेएस, कोआ.जेएस, हैपी.जेएस, सेल.जेएस, उल्का (वेब फ्रेमवर्क), डर्बी और कई अन्य शामिल हैं।[30][54] अन्य भाषाओं या रनटाइम वातावरण जैसे Microsoft .NET के साथ इंटरफेस करने के लिए कई पैकेज भी बनाए गए हैं।[55] आधुनिक डेस्कटॉप एकीकृत विकास वातावरण विशेष रूप से Node.js अनुप्रयोगों के लिए संपादन और डिबगिंग सुविधाएँ प्रदान करता है। इस तरह के IDE में एटम (टेक्स्ट एडिटर), ब्रैकेट्स (टेक्स्ट एडिटर), JetBrains MPS WebStorm, शामिल हैं।[56][57] माइक्रोसॉफ्ट विजुअल स्टूडियो (विजुअल स्टूडियो के लिए Node.js टूल्स के साथ,[58] या टाइपस्क्रिप्ट नोड परिभाषाओं के साथ,[59][60][61][62]) NetBeans,[63] Node.js स्टूडियो वह है जो वह है[64] (ग्रहण (सॉफ्टवेयर) -आधारित), और विजुअल स्टूडियो कोड[65][66] कुछ ऑनलाइन वेब-आधारित IDEs भी Node.js को सपोर्ट करते हैं, जैसे Codeanywhere, Codenvy, Cloud9 IDE, Koding, और Node-RED में विजुअल फ्लो एडिटर।
Node.js Jelastic, Google Cloud Platform, AWS Elastic Beanstalk, Joyent और अन्य जैसे कई क्लाउड-होस्टिंग प्लेटफ़ॉर्म पर समर्थित है।
विमोचन
Release[67] | Status | Code name | Release date | Maintenance end |
---|---|---|---|---|
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 | Argon[68] | 2015-09-08 | 2018-04-30 |
5.x | End-of-Life | 2015-10-29 | 2016-06-30 | |
6.x | End-of-Life | Boron[68] | 2016-04-26 | 2019-04-30 |
7.x | End-of-Life | 2016-10-25 | 2017-06-30 | |
8.x | End-of-Life | Carbon[68] | 2017-05-30 | 2019-12-31 |
9.x | End-of-Life | 2017-10-01 | 2018-06-30 | |
10.x | End-of-Life | Dubnium[68] | 2018-04-24 | 2021-04-30 |
11.x | End-of-Life | 2018-10-23 | 2019-06-01 | |
12.x | End-of-Life | Erbium[68] | 2019-04-23 | 2022-04-30 |
13.x | End-of-Life | 2019-10-22 | 2020-06-01 | |
14.x | Maintenance LTS | Fermium[68] | 2020-04-21 | 2023-04-30 |
15.x | End-of-Life | 2020-10-20 | 2021-06-01 | |
16.x | Maintenance LTS | Gallium[68] | 2021-04-20 | 2023-09-11[69] |
17.x | End-of-Life | 2021-10-19 | 2022-06-01 | |
18.x | Active LTS | Hydrogen[68] | 2022-04-19 | 2025-04-30 |
19.x | Active | 2022-10-18 | 2023-06-01 | |
20.x | Current | New Version[70] | 2023-04-18 | 2026-04-30 |
21.x | Planned | [68] | 2023-10-17 | 2024-05-30 |
22.x | Planned | [68] | 2024-04-15 | 2027-04-28 |
23.x | Planned | [68] | 2024-10-14 | 2025-05-27 |
Legend: Old version Older version, still maintained Latest version Future release |
Node.js के नए प्रमुख रिलीज हर छह महीने में GitHub मुख्य शाखा से काटे जाते हैं। सम-संख्या वाले संस्करण अप्रैल में काटे जाते हैं और विषम-संख्या वाले संस्करण अक्टूबर में काटे जाते हैं। जब एक नया अजीब संस्करण जारी किया जाता है, तो पिछला सम संस्करण दीर्घकालिक समर्थन (एलटीएस) में संक्रमण से गुजरता है, जो उस संस्करण को एलटीएस नामित तिथि से 18 महीने का सक्रिय समर्थन देता है। इन 18 महीनों के समाप्त होने के बाद, एक एलटीएस रिलीज़ को अतिरिक्त 12 महीनों का रखरखाव समर्थन प्राप्त होता है। वर्तमान रिलीज़ में आने के कुछ सप्ताह बाद एक सक्रिय संस्करण परिवर्तनों के नॉन-ब्रेकिंग बैकपोर्ट प्राप्त करता है। एक रखरखाव रिलीज़ केवल महत्वपूर्ण सुधार और प्रलेखन अद्यतन प्राप्त करता है।[68] एलटीएस वर्किंग ग्रुप नोड.जेएस फाउंडेशन की तकनीकी संचालन समिति के सहयोग से रणनीति और नीति का प्रबंधन करता है।
तकनीकी विवरण
Node.js एक जावास्क्रिप्ट रनटाइम वातावरण है जो आने वाले अनुरोधों को एक लूप में संसाधित करता है, जिसे इवेंट लूप कहा जाता है।
आंतरिक
Node.js अतुल्यकालिक घटनाओं को संभालने के लिए हुड के नीचे libuv का उपयोग करता है। लिबव विंडोज और पॉज़िक्स-आधारित सिस्टम जैसे लिनक्स, मैकओएस, ओएसएस ऑन नॉनस्टॉप (सर्वर कंप्यूटर) और यूनिक्स दोनों पर नेटवर्क और फाइल सिस्टम की कार्यक्षमता के लिए एक अमूर्त परत है। HTTP समर्थन के लिए Node.js nghttp2 पर निर्भर करता है। संस्करण 20 के अनुसार, Node.js ada लाइब्रेरी का उपयोग करता है जो अप-टू-डेट WHATWG URL अनुपालन प्रदान करता है। संस्करण 19.5 के अनुसार, तेजी से यूनिकोड सत्यापन और ट्रांसकोडिंग के लिए Node.js simdutf लाइब्रेरी का उपयोग करता है .
थ्रेडिंग
Node.js नॉन-ब्लॉकिंग I/O कॉल का उपयोग करते हुए सिंगल थ्रेडिंग | सिंगल-थ्रेड इवेंट लूप पर काम करता है, जिससे यह थ्रेड संदर्भ स्विचिंग की लागत के बिना हजारों समवर्ती कनेक्शनों का समर्थन करने की अनुमति देता है।[71] पर्यवेक्षक पैटर्न का उपयोग करने वाले सभी अनुरोधों के बीच एक ही थ्रेड साझा करने का डिज़ाइन अत्यधिक समवर्ती अनुप्रयोगों के निर्माण के लिए है, जहां I/O प्रदर्शन करने वाले किसी भी फ़ंक्शन को कॉलबैक (कंप्यूटर प्रोग्रामिंग) का उपयोग करना चाहिए। सिंगल-थ्रेडेड इवेंट लूप को समायोजित करने के लिए, Node.js libuv लाइब्रेरी का उपयोग करता है - जो बदले में, एक निश्चित आकार के थ्रेड पूल का उपयोग करता है जो कुछ गैर-ब्लॉकिंग एसिंक्रोनस I/O संचालन को संभालता है।[6]
एक थ्रेड पूल Node.js में समानांतर कार्यों के निष्पादन को संभालता है। मुख्य थ्रेड फ़ंक्शन कॉल कार्यों को साझा कार्य कतार में पोस्ट करता है, जो थ्रेड पूल में थ्रेड्स को खींचता है और निष्पादित करता है। स्वाभाविक रूप से नॉन-ब्लॉकिंग सिस्टम फ़ंक्शंस जैसे कि नेटवर्किंग कर्नेल-साइड नॉन-ब्लॉकिंग सॉकेट्स में अनुवाद करता है, जबकि अंतर्निहित सिस्टम फ़ंक्शंस जैसे फ़ाइल I / O अपने स्वयं के थ्रेड्स पर ब्लॉकिंग तरीके से चलता है। जब थ्रेड पूल में कोई थ्रेड किसी कार्य को पूरा करता है, तो यह इसके बारे में मुख्य थ्रेड को सूचित करता है, जो बदले में जागता है और पंजीकृत कॉलबैक निष्पादित करता है।
इस एकल-थ्रेडेड दृष्टिकोण का एक नकारात्मक पक्ष यह है कि Node.js किसी अतिरिक्त मॉड्यूल, जैसे क्लस्टर, का उपयोग किए बिना चल रहे मशीन के CPU कोर की संख्या में वृद्धि करके ऊर्ध्वाधर स्केलिंग की अनुमति नहीं देता है,[50]स्ट्रांगलूप प्रोसेस मैनेजर,[72] या दोपहर 2.[73] हालाँकि, डेवलपर libuv थ्रेड पूल में थ्रेड्स की डिफ़ॉल्ट संख्या बढ़ा सकते हैं। सर्वर ऑपरेटिंग सिस्टम | ऑपरेटिंग सिस्टम (OS) इन थ्रेड्स को कई कोर में वितरित करने की संभावना है।[74] एक और समस्या यह है कि लंबे समय तक चलने वाली संगणनाएं और अन्य सीपीयू-बाउंड कार्य पूरा होने तक पूरे ईवेंट-लूप को फ्रीज कर देते हैं।[citation needed]
वी 8
V8 जावास्क्रिप्ट निष्पादन इंजन है जिसे शुरुआत में Google Chrome के लिए बनाया गया था। इसे 2008 में Google द्वारा ओपन-सोर्स किया गया था। C++ में लिखा गया, V8 जावास्क्रिप्ट स्रोत कोड को मूल मशीन कोड में समय-समय पर संकलित करता है।[6] 2016 तक, इसमें इग्निशन, एक बायटेकोड दुभाषिया भी शामिल है।
पैकेज प्रबंधन
npm (सॉफ्टवेयर) Node.js सर्वर प्लेटफॉर्म के लिए पहले से इंस्टॉल पैकेज मैनेजर है। यह npm रजिस्ट्री से Node.js प्रोग्राम स्थापित करता है, तीसरे पक्ष के Node.js प्रोग्राम की स्थापना और प्रबंधन का आयोजन करता है। एनपीएम रजिस्ट्री में पैकेज सरल सहायक पुस्तकालयों जैसे लोदाश से लेकर टास्क रनर जैसे ग्रंट (सॉफ्टवेयर) तक हो सकते हैं।
एकीकृत एपीआई
Node.js को एक साइट के साथ एक ब्राउज़र के साथ जोड़ा जा सकता है, एक डेटाबेस जो JSON डेटा का समर्थन करता है (जैसे कि PostgreSQL,[75] MongoDB, या CouchDB) और JSON एक एकीकृत जावास्क्रिप्ट डेवलपमेंट स्टैक के लिए। मॉडल-व्यू-कंट्रोलर, मॉडल दृश्य प्रस्तुतकर्ता , मॉडल व्यू व्यू मॉडल आदि जैसे अनिवार्य रूप से सर्वर-साइड डेवलपमेंट पैटर्न के अनुकूलन के साथ, Node.js क्लाइंट साइड और सर्वर के बीच समान मॉडल और सर्विस इंटरफेस के कोड के पुन: उपयोग की अनुमति देता है। ओर।
इवेंट लूप
Node.js ऑपरेटिंग सिस्टम के साथ पंजीकृत होता है इसलिए OS इसे कनेक्शन के बारे में सूचित करता है और कॉलबैक जारी करता है। Node.js रनटाइम के भीतर, प्रत्येक कनेक्शन एक छोटा हीप आवंटन है। परंपरागत रूप से, अपेक्षाकृत भारी OS प्रक्रियाओं या थ्रेड्स ने प्रत्येक कनेक्शन को संभाला। प्रक्रियाओं या थ्रेड्स के बजाय, स्केलेबिलिटी के लिए Node.js इवेंट लूप का उपयोग करता है।[76] अन्य ईवेंट-संचालित सर्वरों के विपरीत, Node.js के ईवेंट लूप को स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है। इसके बजाय, कॉलबैक परिभाषित किए गए हैं, और सर्वर स्वचालित रूप से कॉलबैक परिभाषा के अंत में इवेंट लूप में प्रवेश करता है। Node.js ईवेंट लूप से बाहर निकलता है जब आगे कोई कॉलबैक निष्पादित नहीं किया जाता है।
वेबअसेंबली
Node.js WebAssembly को सपोर्ट करता है और Node 14 के पास WebAssembly#WASI, WebAssembly सिस्टम इंटरफेस का प्रायोगिक समर्थन है।
मूल बंधन
Node.js C (प्रोग्रामिंग भाषा)-आधारित API के माध्यम से ऐड-ऑन बनाने का एक तरीका प्रदान करता है जिसे N-API कहा जाता है, जिसका उपयोग लोड करने योग्य (आयात करने योग्य) बनाने के लिए किया जा सकता है। .node
C/C++ में लिखे सोर्स कोड से मॉड्यूल।[77] मॉड्यूल को सीधे मेमोरी में लोड किया जा सकता है और जेएस पर्यावरण के भीतर सरल कॉमनजेएस मॉड्यूल के रूप में निष्पादित किया जा सकता है। N-API का कार्यान्वयन आंतरिक C/C++ Node.js और V8 ऑब्जेक्ट्स पर निर्भर करता है, जिसके लिए उपयोगकर्ताओं को भाषा बाइंडिंग की आवश्यकता होती है (निर्देश शामिल करें|#शामिल हैं) Node.js विशिष्ट उनके मूल स्रोत कोड में निर्देश शामिल करें।[77]
जैसा कि Node.js API बाइनरी स्तर पर ब्रेकिंग परिवर्तनों के अधीन है, ठीक से काम करने के लिए मॉड्यूल को विशिष्ट Node.js संस्करणों के विरुद्ध बनाया और शिप किया जाना है। समस्या का समाधान करने के लिए, तीसरे पक्ष ने एपीआई के शीर्ष पर खुले स्रोत वाले С/С++ रैपर पेश किए हैं जो आंशिक रूप से समस्या को कम करते हैं। वे इंटरफेस को सरल करते हैं, लेकिन एक साइड इफेक्ट के रूप में वे जटिलता भी पेश कर सकते हैं जिससे अनुरक्षकों को निपटना पड़ता है। भले ही Node.js की मुख्य कार्यक्षमता जावास्क्रिप्ट बिल्ट-इन लाइब्रेरी में रहती है, C++ में लिखे गए मॉड्यूल का उपयोग क्षमताओं को बढ़ाने और अनुप्रयोगों के प्रदर्शन को बेहतर बनाने के लिए किया जा सकता है।
इस तरह के मॉड्यूल बनाने के लिए एक उपयुक्त सी ++ कंपाइलर और आवश्यक हेडर (बाद वाले आमतौर पर नोड.जेएस के साथ भेज दिए जाते हैं) की आवश्यकता होती है, उदाहरण के लिए, जीसीसी संकलक , बजना या माइक्रोसॉफ्ट विजुअल सी ++ ++ | एमएसवीसी ++।
एन-एपीआई जावा मूल इंटरफ़ेस के समान है।
प्रोजेक्ट गवर्नेंस
2015 में, बड़े नोड.जेएस समुदाय की विभिन्न शाखाओं ने वेंडर-न्यूट्रल नोड.जेएस फाउंडेशन के तहत काम करना शुरू किया। संगठन का घोषित उद्देश्य एक खुले शासन मॉडल के माध्यम से नोड.जेएस और अन्य संबंधित मॉड्यूल के विकास में तेजी लाने में मदद करना है जो भागीदारी, तकनीकी योगदान और नोड में निवेशित पारिस्थितिकी तंत्र द्वारा दीर्घकालिक प्रबंधन के लिए एक रूपरेखा को प्रोत्साहित करता है। जेएस की सफलता।[78] Node.js Foundation तकनीकी संचालन समिति (TSC) Node.js Foundation की तकनीकी शासी निकाय है। TSC कोर Node.js रेपो के साथ-साथ निर्भर और आसन्न परियोजनाओं के लिए जिम्मेदार है। आम तौर पर टीएससी इन परियोजनाओं के प्रशासन को कार्यकारी समूहों या समितियों को सौंपता है।[79] LTS समूह जो दीर्घकालिक समर्थित रिलीज़ का प्रबंधन करता है, ऐसा ही एक समूह है। अन्य वर्तमान समूहों में वेबसाइट, स्ट्रीम, बिल्ड, डायग्नोस्टिक्स, i18n, इंजीलवाद, डॉकर, एडऑन एपीआई, बेंचमार्किंग, पोस्ट-मॉर्टम, इंटल, डॉक्यूमेंटेशन और टेस्टिंग शामिल हैं।[80] अगस्त 2017 में, परियोजना की आचार संहिता से संबंधित विवाद के कारण टीएससी के एक तिहाई सदस्यों ने इस्तीफा दे दिया।[81]
यह भी देखें
- डेनो (सॉफ्टवेयर)—जावास्क्रिप्ट और टाइपस्क्रिप्ट के लिए एक बैक-एंड रनटाइम वातावरण, जिसे रयान डाहल द्वारा भी बनाया गया है।
संदर्भ
- ↑ "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.
- ↑ Ryandahl (23 June 2011). "माइक्रोसॉफ्ट की मदद से विंडोज में पोर्टिंग नोड". nodejs.org. Retrieved 17 April 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.
- ↑ 44.0 44.1 44.2 Node.js for PHP Developers, O'Reilly Media, Inc., 2013
- ↑ 45.0 45.1 45.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.
- ↑ 50.0 50.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.
- ↑ 68.00 68.01 68.02 68.03 68.04 68.05 68.06 68.07 68.08 68.09 68.10 68.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
- ↑ 77.0 77.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
बाहरी संबंध
