javascript Node.js का उपयोग कब करें, यह कैसे तय करें?




web-applications (14)

नोड का उपयोग करके अपनी अगली परियोजना शुरू करने के सबसे महत्वपूर्ण कारण ...

  • सभी सबसे अच्छे दोस्त इसमें हैं ... इसलिए यह मजेदार होना चाहिए।
  • आप कूलर पर hangout कर सकते हैं और इसके बारे में उत्साहित होने के लिए बहुत सारे नोड रोमांच हैं।
  • जब क्लाउड होस्टिंग लागत की बात आती है तो आप एक पैसा पिनचर होते हैं।
  • रेल के साथ ऐसा किया गया था
  • आप आईआईएस तैनाती से नफरत करते हैं
  • आपका पुराना आईटी जॉब बदतर हो रहा है और आप चाहते हैं कि आप एक चमकदार नए स्टार्ट अप में हों।

क्या उम्मीद ...

  • आप बिना सर्वर की सभी आवश्यक ब्लूटवेयर के एक्सप्रेस के साथ सुरक्षित और सुरक्षित महसूस करेंगे।
  • एक रॉकेट और तराजू की तरह चलता है।
  • आप इसे सपना देखते हैं। आपने इसे स्थापित किया नोड पैकेज repo packages दुनिया में ओपन सोर्स लाइब्रेरी का सबसे बड़ा पारिस्थितिकी तंत्र है।
  • आपके मस्तिष्क को नेस्टेड कॉलबैक की भूमि में समय लगेगा ...
  • ... जब तक आप अपने Promises को नहीं रखना सीखते।
  • Sequelize और Passport आपके नए एपीआई दोस्तों हैं।
  • ज्यादातर async कोड डीबगिंग umm ... दिलचस्प हो जाएगा।
  • टाइपस्क्रिप्ट मास्टर करने के लिए सभी नोडर्स के लिए समय।

इसका उपयोग कौन करता है?

  • पेपैल, नेटफ्लिक्स, वॉलमार्ट, लिंक्डइन, ग्रुपन, उबर, गोडाडी, डॉव जोन्स
  • यहां उन्होंने नोड पर स्विच क्यों किया।

मैं इस तरह की चीजों के लिए नया हूं, लेकिन हाल ही में मैं बहुत कुछ सुन रहा हूं कि Node.js कितना अच्छा है। मुझे सामान्य रूप से jQuery और जावास्क्रिप्ट के साथ काम करना कितना प्यार है, मैं इस बात की मदद नहीं कर सकता कि कैसे नोड.जे.एस. का उपयोग करना है। मेरे मन में जो वेब एप्लिकेशन है, वह Bitly जैसा कुछ है - कुछ सामग्री लेता है, इसे संग्रहीत करता है।

पिछले कुछ दिनों में मैं सभी होमवर्क से कर रहा हूं, मैंने निम्नलिखित जानकारी प्राप्त की है। Node.js

  • एक कमांड लाइन उपकरण है जिसे नियमित वेब सर्वर के रूप में चलाया जा सकता है और एक को जावास्क्रिप्ट प्रोग्राम चलाने देता है
  • महान वी 8 जावास्क्रिप्ट इंजन का उपयोग करता है
  • बहुत अच्छा है जब आपको एक ही समय में कई चीजें करने की ज़रूरत होती है
  • घटना-आधारित है इसलिए सभी अद्भुत Ajax -जैसी चीजें सर्वर की ओर से की जा सकती हैं
  • आइए ब्राउज़र और बैकएंड के बीच कोड साझा करें
  • आइए हम MySQL से बात करते हैं

मेरे द्वारा सामने आए कुछ स्रोत हैं:

यह ध्यान में रखते हुए कि Node.js को अमेज़ॅन के ईसी 2 उदाहरणों पर लगभग आउट ऑफ़ द बॉक्स चलाया जा सकता है, मैं यह समझने की कोशिश कर रहा हूं कि किस प्रकार की समस्याओं को नोड.जेएस की आवश्यकता होती है, जैसे PHP , Python और Ruby जैसे शक्तिशाली राजाओं के विपरीत । मैं समझता हूं कि यह वास्तव में किसी भाषा पर विशेषज्ञता पर निर्भर करता है, लेकिन मेरा प्रश्न सामान्य श्रेणी में अधिक होता है: किसी विशेष ढांचे का उपयोग कब करें और यह किस प्रकार की समस्याएं विशेष रूप से उपयुक्त है?


मेरा मानना ​​है कि नोड.जेएस रीयल-टाइम अनुप्रयोगों के लिए सबसे उपयुक्त है: ऑनलाइन गेम, सहयोग उपकरण, चैट रूम, या कुछ भी जहां उपयोगकर्ता के साथ एक उपयोगकर्ता (या रोबोट? या सेंसर?) करता है, तुरंत अन्य उपयोगकर्ताओं द्वारा देखा जाना चाहिए, एक पृष्ठ ताज़ा किए बिना।

मुझे यह भी जिक्र करना चाहिए कि सॉकेट.आईओ नोड.जेएस के साथ संयोजन में आपके वास्तविक समय विलंबता को कम मतदान के साथ जितना संभव हो उससे भी कम कर देगा। सॉकेट.आईओ सबसे खराब केस परिदृश्य के रूप में लंबे मतदान में वापस आ जाएगा, और यदि वे उपलब्ध हैं तो वेब सॉकेट या यहां तक ​​कि फ्लैश का उपयोग करें।

लेकिन मुझे यह भी जिक्र करना चाहिए कि किसी भी परिस्थिति के बारे में जहां थ्रेड के कारण कोड अवरुद्ध हो सकता है, उसे Node.js. के साथ बेहतर ढंग से संबोधित किया जा सकता है। या ऐसी स्थिति जहां आपको घटना-संचालित होने के लिए आवेदन की आवश्यकता होती है।

इसके अलावा, रयान डाहल ने एक बात में कहा कि मैंने एक बार भाग लिया था कि नोड.जेएस नियमित रूप से पुरानी HTTP अनुरोधों के लिए निकटता वाले निगेंक्स को दर्शाता है। इसलिए यदि हम नोड.जेएस के साथ निर्माण करते हैं, तो हम अपने सामान्य संसाधनों को काफी प्रभावी ढंग से सेवा दे सकते हैं, और जब हमें ईवेंट संचालित सामग्री की आवश्यकता होती है, तो यह इसे संभालने के लिए तैयार है।

इसके अलावा यह हर समय जावास्क्रिप्ट है। पूरे ढेर पर लिंगुआ फ्रैंका।


इसे छोटा करने के लिए:

Node.js उन अनुप्रयोगों के लिए उपयुक्त है जिनमें बहुत से समवर्ती कनेक्शन हैं और प्रत्येक अनुरोध को केवल बहुत कम CPU चक्र की आवश्यकता होती है, क्योंकि फ़ंक्शन निष्पादन के दौरान इवेंट लूप (अन्य सभी क्लाइंट्स के साथ) अवरुद्ध होता है।

नोड.जेएस में इवेंट लूप के बारे में एक अच्छा लेख मिक्सू का तकनीकी ब्लॉग है: node.js इवेंट लूप को समझना


नोडजेएस का उपयोग करने के कारण:

  • यह जावास्क्रिप्ट चलाता है, ताकि आप सर्वर और क्लाइंट पर एक ही भाषा का उपयोग कर सकें, और उनके बीच कुछ कोड भी साझा कर सकें (उदाहरण के लिए फॉर्म सत्यापन के लिए, या किसी भी अंत में दृश्य प्रस्तुत करना।)

  • पारंपरिक बहु-थ्रेडेड Java या आरओआर फ्रेमवर्क की तुलना में, single-threaded इवेंट-संचालित सिस्टम एक साथ कई अनुरोधों को संभालने के दौरान भी fast होता है, और यह भी सरल होता है।

  • एनपीएम के माध्यम से सुलभ packages का बढ़ता हुआ पूल, क्लाइंट और सर्वर-साइड लाइब्रेरी / मॉड्यूल, साथ ही वेब विकास के लिए कमांड लाइन टूल्स सहित। इनमें से अधिकतर आसानी से जिथब पर होस्ट किए जाते हैं, जहां कभी-कभी आप किसी समस्या की रिपोर्ट कर सकते हैं और इसे घंटों के भीतर तय कर सकते हैं! मानकीकृत समस्या रिपोर्टिंग और आसान फोर्किंग के साथ, सब कुछ एक छत के नीचे होना अच्छा लगता है।

  • यह डिफैक्टो मानक वातावरण बन गया है जिसमें जावास्क्रिप्ट से संबंधित टूल्स और अन्य वेब-संबंधित टूल्स चलाने के लिए, कार्य धावक, मिनीफायर, ब्यूटीफायर, लिंटर्स, प्रीप्रोसेसर, बंडलर और एनालिटिक्स प्रोसेसर शामिल हैं।

  • यह प्रोटोटाइप, फुर्तीली विकास और तेजी से उत्पाद पुनरावृत्ति के लिए काफी उपयुक्त लगता है।

नोडजेएस का उपयोग करने के कारण:

  • यह जावास्क्रिप्ट चलाता है, जिसमें संकलन-समय की जांच नहीं होती है। बड़ी, जटिल सुरक्षा-महत्वपूर्ण प्रणालियों, या विभिन्न संगठनों के बीच सहयोग सहित परियोजनाओं के लिए, एक भाषा जो संविदात्मक इंटरफेस को प्रोत्साहित करती है और स्थिर प्रकार की जांच प्रदान करती है, आपको लंबे समय तक कुछ डिबगिंग समय (और विस्फोट ) बचा सकती है। (हालांकि JVM null साथ फंस गया है, इसलिए कृपया अपने परमाणु रिएक्टरों के लिए हास्केल का उपयोग करें।)

  • उसमें जोड़ा गया, एनपीएम में कई पैकेज थोड़ा कच्चे हैं , और अभी भी तेजी से विकास के तहत हैं। पुराने ढांचे के लिए कुछ पुस्तकालयों में परीक्षण और बगफिक्सिंग का एक दशक हो गया है, और अब तक बहुत स्थिर हैं। Npmjs.org में संकुल को रेट करने के लिए कोई तंत्र नहीं है , जिसने पैकेजों के प्रसार को कम या ज्यादा कम करने के लिए प्रेरित किया है, जिनमें से एक बड़ा प्रतिशत अब बनाए रखा नहीं जाता है।

  • नेस्टेड कॉलबैक नरक। (बेशक इसके लिए 20 अलग-अलग समाधान हैं ...)

  • पैकेजों का बढ़ता हुआ पूल एक नोडजेएस प्रोजेक्ट को अगले से मूल रूप से अलग दिखाई दे सकता है । उपलब्ध विकल्पों की बड़ी संख्या के कारण कार्यान्वयन में एक बड़ी विविधता है (उदाहरण के लिए एक्सप्रेस / Sails.js / Meteor / Derby )। यह कभी-कभी नोड प्रोजेक्ट पर कूदने के लिए एक नए डेवलपर के लिए कठिन बना सकता है। इस बात की तुलना करें कि किसी मौजूदा प्रोजेक्ट में शामिल होने वाले रेल डेवलपर के साथ: वह ऐप से बहुत जल्दी परिचित हो सकता है, क्योंकि सभी रेल ऐप्स को समान संरचना का उपयोग करने के लिए प्रोत्साहित किया जाता है।

  • फाइलों से निपटना दर्द का थोड़ा सा हो सकता है। ऐसी चीजें जो अन्य भाषाओं में तुच्छ हैं, जैसे टेक्स्ट फ़ाइल से लाइन पढ़ना, नोड.जेएस के साथ बहुत अजीब है कि उस पर 80+ अपवॉट्स के साथ एक स्टैक ओवरफ्लो प्रश्न है। एक CSV फ़ाइल से एक समय में एक रिकॉर्ड पढ़ने का कोई आसान तरीका नहीं है । आदि।

मुझे नोडजेएस से प्यार है, यह तेज़ और जंगली और मजेदार है, लेकिन मुझे चिंतित है कि इसमें सिद्ध-शुद्धता में बहुत रुचि नहीं है। आइए आशा करते हैं कि हम अंततः दोनों दुनिया के सर्वश्रेष्ठ में विलय कर सकते हैं। मैं भविष्य में नोड को प्रतिस्थापित करने के लिए उत्सुक हूं ... :)


एक नई परियोजना के लिए Node.js चुनने का मेरा एक और कारण है:

शुद्ध क्लाउड आधारित विकास करने में सक्षम हो

मैंने थोड़ी देर के लिए क्लाउड 9 आईडीई का उपयोग किया है और अब मैं इसके बिना कल्पना नहीं कर सकता, इसमें सभी विकास जीवन चक्र शामिल हैं। आपको बस एक ब्राउज़र चाहिए और आप किसी भी डिवाइस पर कहीं भी कोड कर सकते हैं। आपको एक कंप्यूटर (जैसे घर पर) में कोड की जांच करने की आवश्यकता नहीं है, फिर किसी अन्य कंप्यूटर में चेकआउट (जैसे कार्यस्थल पर)।

बेशक, शायद अन्य भाषाओं या प्लेटफार्मों के लिए क्लाउड आधारित आईडीई (क्लाउड 9 आईडीई अन्य भाषाओं के लिए भी समर्थन जोड़ रहा है), लेकिन क्लाउड 9 का उपयोग नोड.जेएस विकास करने के लिए वास्तव में मेरे लिए एक शानदार अनुभव है।


  1. नोड त्वरित प्रोटोटाइप के लिए बहुत अच्छा है लेकिन मैं इसे किसी भी जटिल के लिए कभी भी उपयोग नहीं करता। मैंने एक कंपाइलर के साथ संबंध विकसित करने में 20 साल बिताए और मुझे यकीन है कि इसे याद आती है।

  2. नोड विशेष रूप से कोड को बनाए रखने के लिए दर्दनाक है जिसे आपने थोड़ी देर के लिए नहीं देखा है। जानकारी टाइप करें और संकलन समय त्रुटि पहचान अच्छी चीजें हैं। यह सब क्यों फेंक दो? किस लिए? और डांग, जब कुछ दक्षिण में जाता है तो ढेर का निशान अक्सर पूरी तरह से बेकार होता है।


मैं कुछ बिंदुओं को साझा कर सकता हूं जहां नोड जेएस का उपयोग करना है।

  1. रीयलटाइम अनुप्रयोगों जैसे चैट, सहयोगी संपादन बेहतर के लिए हम नोडजेस के साथ जाते हैं क्योंकि यह घटना आधार है जहां सर्वर से सर्वर पर आग ईवेंट और डेटा होता है।
  2. सरल और समझने में आसान क्योंकि यह जावास्क्रिप्ट आधार है जहां अधिकांश लोगों के पास विचार है।
  3. वर्तमान वेब अनुप्रयोग कोणीय जेएस और रीढ़ की हड्डी की तरफ जा रहे हैं, नोड के साथ क्लाइंट साइड कोड के साथ बातचीत करना आसान है क्योंकि दोनों जेसन डेटा का उपयोग करेंगे।
  4. बहुत सारे प्लगइन्स उपलब्ध हैं।

कमियां: -

  1. नोड अधिकांश डेटाबेस का समर्थन करेगा लेकिन सबसे अच्छा मोंगोडब है जो जटिल जुड़ाव और दूसरों का समर्थन नहीं करेगा।
  2. संकलन त्रुटियां ... डेवलपर को प्रत्येक अपवाद को अन्य बुद्धिमानों को संभालना चाहिए यदि कोई त्रुटि समझौता अनुप्रयोग काम करना बंद कर देगा, जहां हमें फिर से जाना होगा और इसे मैन्युअल रूप से शुरू करना होगा या किसी भी स्वचालन उपकरण का उपयोग करना होगा।

निष्कर्ष: - सरल और वास्तविक समय अनुप्रयोगों के लिए उपयोग करने के लिए सबसे अच्छा नोडज .. यदि आपके पास बहुत बड़ा व्यापार तर्क है और जटिल कार्यक्षमता बेहतर नोडजेज़ का उपयोग नहीं करना चाहिए। यदि आप चैट और किसी भी सहयोगी कार्यक्षमता के साथ एक आवेदन बनाना चाहते हैं .. नोड विशिष्ट भागों में उपयोग किया जा सकता है और आपकी सुविधा तकनीक के साथ रहना चाहिए।


यदि आपका आवेदन मुख्य रूप से वेब एपिस, या अन्य आईओओ चैनलों को टेटर्स करता है, तो उपयोगकर्ता इंटरफ़ेस दें या ले लें, node.js आपके लिए एक उचित चयन हो सकता है, खासकर यदि आप सबसे अधिक स्केलेबिलिटी को निचोड़ना चाहते हैं, या यदि आपकी मुख्य भाषा जीवन में है जावास्क्रिप्ट (या प्रकार के जावास्क्रिप्ट ट्रांसपेलर) है। यदि आप माइक्रोस्कोर्सेस बनाते हैं, तो node.js भी ठीक है। Node.js किसी भी परियोजना के लिए भी उपयुक्त है जो छोटा या सरल है।

इसका मुख्य बिक्री बिंदु यह है कि यह फ्रंट-एंडर्स सामान्य विभाजन के बजाए बैक-एंड सामान की ज़िम्मेदारी लेता है। एक अन्य उचित बिक्री बिंदु यह है कि यदि आपका कार्यबल जावास्क्रिप्ट के साथ शुरू करने के लिए उन्मुख है।

हालांकि, एक निश्चित बिंदु से परे, आप मॉड्यूलरिटी, पठनीयता और प्रवाह नियंत्रण को मजबूर करने के लिए भयानक हैक्स के बिना अपना कोड स्केल नहीं कर सकते हैं। कुछ लोग हैंक की तरह कुछ लोग, विशेष रूप से एक घटना संचालित जावास्क्रिप्ट पृष्ठभूमि से आते हैं, वे परिचित या क्षमा करने योग्य लगते हैं।

विशेष रूप से, जब आपके एप्लिकेशन को सिंक्रोनस प्रवाह करने की आवश्यकता होती है, तो आप आधा बेक्ड समाधानों पर खून बहना शुरू करते हैं जो आपकी विकास प्रक्रिया के संदर्भ में काफी धीमा हो जाते हैं। यदि आपके आवेदन में गहन भागों की गणना है, तो सावधानी पिकिंग (केवल) node.js. के साथ चलें हो सकता है कि Koajs या अन्य novelties मूल रूप से thodey पहलुओं को कम करते हैं, जब मैं मूल रूप से node.js का इस्तेमाल किया या यह लिखा था।


मेरा टुकड़ा: nodejs एनालिटिक्स, चैट-ऐप, एपीआईएस, विज्ञापन सर्वर इत्यादि जैसे वास्तविक समय सिस्टम बनाने के लिए बहुत बढ़िया है। नर्क, मैंने 2 घंटे के भीतर नोडजे और सॉकेट.ओओ का उपयोग करके अपना पहला चैट ऐप बनाया और वह भी परीक्षा सप्ताह के दौरान!

संपादित करें

कई वर्षों से मैंने नोडज का उपयोग करना शुरू कर दिया है और मैंने इसे स्थिर फ़ाइल सर्वर, सरल एनालिटिक्स, चैट ऐप और बहुत कुछ सहित कई अलग-अलग चीजों को बनाने में उपयोग किया है। यह नोडज का उपयोग करने पर मेरा लेना है

कब इस्तेमाल करें

सिस्टम बनाते समय जो समेकन और गति पर जोर देते हैं।

  • सॉकेट केवल चैट ऐप्स, आईआरसी ऐप्स इत्यादि जैसे सर्वर।
  • सामाजिक नेटवर्क जो रीयलटाइम संसाधनों जैसे भौगोलिक स्थान, वीडियो स्ट्रीम, ऑडियो स्ट्रीम इत्यादि पर जोर देते हैं।
  • आंकड़ों के छोटे हिस्सों को वास्तव में एक एनालिटिक्स वेबपैप की तरह तेज़ी से संभालना।
  • एक आरईएसटी केवल एपीआई उजागर के रूप में।

उपयोग नहीं करते समय

यह एक बहुत ही बहुमुखी वेबसर्वर है ताकि आप जहां भी चाहें इसका उपयोग कर सकें लेकिन शायद इन स्थानों पर नहीं।

  • सरल ब्लॉग और स्थिर साइटें।
  • एक स्थिर फ़ाइल सर्वर के रूप में।

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


आपने Node.js. के बारे में क्या अद्भुत है संक्षेप में एक महान काम किया है। मेरी भावना यह है कि Node.js उन अनुप्रयोगों के लिए विशेष रूप से उपयुक्त है जहां आप ब्राउज़र से सर्वर पर लगातार कनेक्शन बनाए रखना चाहते हैं। "long-polling" रूप में जाने वाली तकनीक का उपयोग करके, आप एक ऐसा ऐप्लिकेशन लिख सकते हैं जो वास्तविक समय में उपयोगकर्ता को अपडेट भेजता है। कई वेब के दिग्गजों पर लंबी मतदान करना, जैसे रूबी ऑन रेल या Django , सर्वर पर अत्यधिक भार पैदा करेंगे, क्योंकि प्रत्येक सक्रिय ग्राहक एक सर्वर प्रक्रिया खाता है। यह स्थिति एक tarpit हमले की मात्रा है। जब आप Node.js जैसे कुछ का उपयोग करते हैं, तो सर्वर को प्रत्येक खुले कनेक्शन के लिए अलग-अलग धागे बनाए रखने की आवश्यकता नहीं होती है।

इसका मतलब है कि आप Node.js में ब्राउज़र-आधारित चैट एप्लिकेशन बना सकते हैं जो बहुत से ग्राहकों को सेवा देने के लिए लगभग कोई सिस्टम संसाधन नहीं लेता है। जब भी आप इस तरह के लंबे मतदान करना चाहते हैं, Node.js एक अच्छा विकल्प है।

यह उल्लेखनीय है कि रूबी और पायथन दोनों में इस तरह की चीज ( eventmachine और twisted क्रमशः) करने के लिए उपकरण हैं, लेकिन यह नोड.जेएस असाधारण रूप से अच्छी तरह से और जमीन से ऊपर है। जावास्क्रिप्ट असाधारण रूप से कॉलबैक-आधारित समवर्ती मॉडल पर स्थित है, और यह यहां उत्कृष्टता प्राप्त करता है। साथ ही, क्लाइंट और सर्वर दोनों के लिए जेएसओएन देशी के साथ क्रमबद्ध और deserialize करने में सक्षम होने के नाते काफी निफ्टी है।

मैं यहां अन्य उत्तरों को पढ़ने की आशा करता हूं, यह एक शानदार सवाल है।

यह इंगित करने लायक है कि Node.js उन परिस्थितियों के लिए भी बहुत अच्छा है जिसमें आप क्लाइंट / सर्वर अंतराल में बहुत सारे कोड का पुन: उपयोग करेंगे। उल्का ढांचा यह वास्तव में आसान बनाता है, और बहुत से लोग सुझाव दे रहे हैं कि यह वेब विकास का भविष्य हो सकता है। मैं अनुभव से कह सकता हूं कि मेटीर में कोड लिखने के लिए यह बहुत मजेदार है, और इसका एक बड़ा हिस्सा इस बारे में सोचने में कम समय लगा रहा है कि आप अपने डेटा को पुन: स्थापित करने के लिए कैसे जा रहे हैं, इसलिए ब्राउजर में चलने वाला कोड आसानी से इसे कुशल बनाओ और इसे वापस पास करें।

यहां पिरामिड और लंबी-मतदान पर एक लेख दिया गया है, जो गीवेंट से थोड़ी मदद के साथ स्थापित करना बहुत आसान हो जाता है: टिकाटैक और पिरामिड के साथ लांग पोलिंग


एक और बड़ी बात यह है कि मुझे लगता है कि किसी ने भी Node.js के बारे में उल्लेख नहीं किया है अद्भुत समुदाय, पैकेज प्रबंधन प्रणाली (एनपीएम) और मॉड्यूल की मात्रा जो मौजूद है जिसमें आप बस अपने पैकेज.जेसन फ़ाइल में शामिल कर सकते हैं।


एक और चीज नोड प्रदान करता है जो नोड की बाल प्रक्रिया ( childProcess.fork() प्रत्येक को डॉक्स के अनुसार 10 childProcess.fork() मेमोरी की आवश्यकता होती है childProcess.fork() का उपयोग करके नोड के एकाधिक v8 instanes बनाने की क्षमता है, इस प्रकार सर्वर चलाने वाली मुख्य प्रक्रिया को प्रभावित नहीं करता है। तो एक पृष्ठभूमि नौकरी को ऑफ़लोड करना जिसके लिए बड़ी सर्वर लोड की आवश्यकता होती है, वह बच्चे के खेल बन जाती है और जब भी आवश्यक हो हम उन्हें आसानी से मार सकते हैं।

मैं नोड का बहुत उपयोग कर रहा हूं और हमारे द्वारा बनाए गए अधिकांश ऐप्स में, एक ही समय में सर्वर कनेक्शन की आवश्यकता होती है, इस प्रकार एक भारी नेटवर्क यातायात। Express.js और नए Koajs (जो कॉलबैक नरक को हटा दिया गया) जैसे फ्रेमवर्क ने नोड पर और भी आसान काम किया है।


इसका इस्तेमाल किया जा सकता है

  • वे अनुप्रयोग जो अत्यधिक घटना संचालित होते हैं और भारी I / O बाध्य होते हैं
  • अन्य प्रणालियों के लिए बड़ी संख्या में कनेक्शन को संभालने वाले अनुप्रयोग
  • रीयल-टाइम एप्लिकेशन (Node.js को वास्तविक समय के लिए ग्राउंड अप से डिजाइन किया गया था और उपयोग करने में आसान होना था।)
  • वे अनुप्रयोग जो अन्य स्रोतों से और उससे स्ट्रीमिंग की जानकारी के स्कैड को जोड़ते हैं
  • उच्च यातायात, स्केलेबल अनुप्रयोगों
  • मोबाइल ऐप जिन्हें प्लेटफॉर्म एपीआई और डेटाबेस से बात करनी है, बिना डेटा एनालिटिक्स किए
  • नेटवर्क अनुप्रयोगों का निर्माण करें
  • उन अनुप्रयोगों को जिन्हें अक्सर पीठ के अंत में बात करने की आवश्यकता होती है

मोबाइल मोर्चे पर, प्राइम-टाइम कंपनियों ने अपने मोबाइल समाधानों के लिए नोड.जेएस पर भरोसा किया है। जांचें क्यों?

LinkedIn एक प्रमुख उपयोगकर्ता है। उनका पूरा मोबाइल स्टैक नोड.जे.एस. पर बनाया गया है। वे प्रत्येक भौतिक मशीन पर 15 उदाहरणों के साथ 15 सर्वर चलाने से चले गए, केवल 4 उदाहरण - जो यातायात को दोगुना कर सकते हैं!

eBay ने ql.io लॉन्च किया, HTTP एपीआई के लिए एक वेब क्वेरी भाषा, जो रनटाइम स्टैक के रूप में Node.js का उपयोग करती है। वे प्रत्येक नोड.जेएस प्रक्रिया प्रति 120,000 से अधिक सक्रिय कनेक्शन को संभालने के लिए एक नियमित डेवलपर-गुणवत्ता उबंटू वर्कस्टेशन को ट्यून करने में सक्षम थे, प्रत्येक कनेक्शन के बारे में 2kB स्मृति का उपभोग!

Walmart ने अपने मोबाइल ऐप को नोड.जेएस का उपयोग करने के लिए फिर से इंजीनियर किया और सर्वर पर अपनी जावास्क्रिप्ट प्रोसेसिंग को धक्का दिया।

यहां और पढ़ें: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/


सिल्वर बुलेट की तरह कुछ भी नहीं है। सब कुछ इसके साथ जुड़े कुछ लागत के साथ आता है। ऐसा लगता है जैसे आप तेल के भोजन खाते हैं, आप अपने स्वास्थ्य से समझौता करेंगे और स्वस्थ भोजन तेल के भोजन जैसे मसालों के साथ नहीं आते हैं। यह व्यक्तिगत पसंद है कि क्या वे अपने भोजन में स्वास्थ्य या मसाले चाहते हैं। इसी तरह से परिदृश्य में Node.js का उपयोग करने पर विचार किया जाता है। यदि आपका ऐप उस परिदृश्य में फिट नहीं है तो आपको इसे अपने ऐप विकास के लिए नहीं मानना ​​चाहिए। मैं बस अपना विचार उसी पर डाल रहा हूं:

Node.JS का उपयोग कब करें

  1. यदि आपके सर्वर साइड कोड को बहुत कम सीपीयू चक्र की आवश्यकता है। दूसरी दुनिया में आप गैर अवरोधन ऑपरेशन कर रहे हैं और इसमें भारी एल्गोरिदम / नौकरी नहीं है जो बहुत सी CPU चक्रों का उपभोग करती है।
  2. यदि आप जावास्क्रिप्ट बैक ग्राउंड से हैं और क्लाइंट साइड जेएस की तरह एकल थ्रेडेड कोड लिखने में सहज हैं।

जब नोड.जेएस का उपयोग न करें

  1. आपका सर्वर अनुरोध भारी CPU उपभोग करने वाले एल्गोरिदम / नौकरी पर निर्भर है।

नोड.जेएस के साथ स्केलेबिलिटी कंसिडरेशन

  1. नोड.जेएस स्वयं अंतर्निहित सिस्टम के सभी मूल का उपयोग नहीं करता है और यह डिफ़ॉल्ट रूप से एकल धागा होता है, आपको मल्टी कोर प्रोसेसर का उपयोग करने और इसे बहु थ्रेड करने के लिए तर्क स्वयं लिखना होगा।

नोड.जेएस विकल्प

नोड.जेएस के स्थान पर उपयोग करने के लिए अन्य विकल्प हैं हालांकि Vert.x बहुत ही आशाजनक प्रतीत होता है और इसमें पॉलीगॉग और बेहतर स्केलेबिलिटी विचारों जैसी कई अतिरिक्त सुविधाएं हैं।





web-applications