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


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

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

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

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

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


2200
2018-02-21 05:20


मूल


मेटा पर इस सवाल पर चर्चा की जा रही है (meta.stackoverflow.com/q/332386/497418)। - zzzzBov


जवाब:


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

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

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

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

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

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


1359
2018-02-21 05:30



हां, मुझे लगता है कि यह सोचना बहुत महत्वपूर्ण है कि 'node.js विशेष रूप से उन अनुप्रयोगों के लिए उपयुक्त है जिनके लिए ब्राउज़र से सर्वर पर लगातार कनेक्शन की आवश्यकता होती है। - जैसे कि चैट प्रोग्राम, या इंटरेक्टिव गेम्स 'अगर कोई ऐसा एप्लिकेशन बना रहा है जिसे उपयोगकर्ता / सर्वर संचार की आवश्यकता नहीं है, तो अन्य ढांचे के साथ विकास करना ठीक होगा और इसमें बहुत कम समय लगेगा। - user482594
इसके लिए धन्यवाद ... ग्रेट क्यू और ए ;-) मैं कुछ अलग-अलग लोगों के सामने और पीछे के विकास के लिए एक महान तकनीक को महारत हासिल करने के संदर्भ में इसके बारे में भी सोचूंगा;) - Stokedout
लंबे मतदान का उपयोग क्यों करें? भविष्य के साथ क्या हुआ और सॉकेट? - hitautodestruct
मेरा संक्षिप्त जवाब पृष्ठभूमि प्रक्रिया है। अनुरोध और प्रतिक्रिया (बाकी एपीआई सहित) सभी को किसी भी अन्य भाषा और सर्वर के साथ हासिल किया जा सकता है। तो उन लोगों के लिए जो अपनी वेब परियोजनाओं को नोड में बदलने की सोच रहे हैं। फिर से वही बात सोचो! पृष्ठभूमि प्रक्रिया के रूप में नोड का उपयोग करें जैसे imap, छवि प्रसंस्करण, क्लाउड पर फ़ाइलों को अपलोड करना, या किसी भी लंबी या कभी खत्म होने वाली प्रक्रियाओं को ईमेल करना, जो अधिकतर ईवेंट उन्मुख होते हैं ... - Vikas


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

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

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

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

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


410
2018-02-21 06:43



नेट और नोड के बीच स्विच करने वाले किसी व्यक्ति से सिर्फ एक अवलोकन, सिस्टम के विभिन्न क्षेत्रों के लिए अलग-अलग भाषाएं संदर्भ-स्विचिंग के दौरान एक बड़ी सौदे में मदद करती हैं। जब मैं जावास्क्रिप्ट को देख रहा हूं, तो मैं क्लाइंट में काम कर रहा हूं, सी # का अर्थ है ऐप सर्वर, एसक्यूएल = डेटाबेस। पूरे जावास्क्रिप्ट में काम करते हुए, मैंने खुद को परतों को भ्रमित कर लिया है, या बस संदर्भ-स्विच में अधिक समय ले रहा है। यह संभवतः रात में .NET स्टैक पर काम करने और रात में नोडिंग पर काम करने का एक आर्टिफैक्ट है, लेकिन इससे कोई फर्क पड़ता है। - Michael Blackburn
दिलचस्प बात यह है कि मुख्यधारा और देशी संस्कृतियों के बीच जाने पर पारस्परिक सांस्कृतिक व्यक्तियों की बोलियां स्विचिंग को "कोड-स्विचिंग" कहा जाता है। - Michael Blackburn
बस दूसरे दिन मैं सोच रहा था कि मैं अलग-अलग रंगों को अलग-अलग रंग देने के बारे में कैसे जा सकता हूं .js फ़ाइलों को किसी भी तरह से। क्लाइंट-साइड के लिए ग्रीन, सर्वर-साइड के लिए नीला। मैं खुद को "खो गया" प्राप्त करता रहता हूं। - AJB
सबसे बढ़िया उत्तर। उदाहरण के लिए node.js सहकर्मी के साथ सहकर्मी के लिए शानदार है। - cpugourou


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

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

  • एकल थ्रेड घटना संचालित प्रणाली है उपवास पारंपरिक मल्टी-थ्रेडेड की तुलना में, एक साथ कई अनुरोधों को संभालने पर भी, और सरल भी जावा या आरओआर ढांचे।

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

  • यह डिफैक्टो मानक वातावरण बन गया है जिसमें दौड़ना है जावास्क्रिप्ट से संबंधित उपकरण और दूसरा वेब से संबंधित उपकरण, कार्य धावक, minifiers, beautifiers, लिंटर्स, preprocessors, बंडलर और विश्लेषिकी प्रोसेसर सहित।

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

कारण नहीं नोडजेएस का उपयोग करने के लिए:

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

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

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

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

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

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


209
2017-11-25 21:47



@nane हाँ मुझे लगता है कि वे उस मुद्दे को संबोधित कर सकते हैं, हालांकि आपको तब अवश्य ही करना चाहिए खुद को सीमित करो टाइपएफ़ भाषाओं में लिखे गए केवल पुस्तकालयों का उपयोग करने के लिए, या स्वीकार नहीं करते हैं आपके सभी कोडबेस स्थिर रूप से टाइप किया गया है। लेकिन एक तर्क चला जाता है: क्योंकि आपको लिखना चाहिए अच्छे परीक्षण भाषा के बावजूद आपके कोड के लिए, फिर आपका आत्मविश्वास का स्तर बराबर होना चाहिए गतिशील रूप से टाइप कोड के लिए भी। अगर हम उस तर्क को स्वीकार करते हैं, तो मजबूत टाइपिंग के फायदे विकासशील / डिबगिंग समय, प्रवीणता और सहायता की सहायता के लिए कम हो जाते हैं। अनुकूलन। - joeytwiddle
@ kervin, मैं मानता हूं कि कुछ मानक बहुत अच्छे होंगे, लेकिन मैं ऑनलाइन जो पा सकता हूं उससे निराश था। कुछ ने तर्क दिया है कि .NET प्रदर्शन है तुलनीय नोड के लिए, लेकिन यह वास्तव में महत्वपूर्ण है कि आप वास्तव में क्या कर रहे हैं। कई समवर्ती कनेक्शन के साथ छोटे संदेश देने में नोड बहुत अच्छा हो सकता है, लेकिन भारी गणितीय गणनाओं के लिए इतना अच्छा नहीं है। एक अच्छी प्रदर्शन तुलना में विभिन्न स्थितियों का परीक्षण करने की आवश्यकता होगी। - joeytwiddle
@joeytwiddle टाइपस्क्रिप्ट जैसी चीज़ों को नोड.जेएस की मदद नहीं करेगा जब यह बड़े जटिल कार्यक्रमों और स्थैतिक टाइपशेकिंग को संभालने की बात आती है? - CodeMonkey
@joeytwiddle इसके लायक है, आप इसका उपयोग कर सकते हैं stillmaintained.com यह निर्धारित करने के लिए कि क्या एक एनपीएम पैकेज अभी भी बनाए रखा गया है (क्योंकि बहुमत github पर हैं)। के अतिरिक्त, npm search तथा npm show आपको पैकेज की अंतिम रिलीज की तारीख दिखाएगी। - Dan Pantry
रेलों को नोड में तुलना करके आप एक मंच को ढांचे में भ्रमित कर रहे हैं। रेल रूबी के लिए एक ढांचा है जैसे कि सेल और उल्का जावास्क्रिप्ट के लिए ढांचे हैं। - BonsaiOak


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

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

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


208
2018-01-15 01:48





मेरे पास एक असली दुनिया का उदाहरण है जहां मैंने नोड.जे.एस. का उपयोग किया है। जिस कंपनी में मैंने काम किया वह एक ग्राहक है जो एक साधारण स्थिर एचटीएमएल वेबसाइट चाहता था। यह वेबसाइट एक आइटम बेचने के लिए है पेपैल और ग्राहक भी एक काउंटर रखना चाहता था जो बेची गई वस्तुओं की मात्रा दिखाता है। ग्राहक को इस वेबसाइट पर बड़ी संख्या में आगंतुक होने की उम्मीद है। मैंने Node.js और का उपयोग कर काउंटर बनाने का फैसला किया Express.js ढांचा।

Node.js आवेदन सरल था। बेची गई वस्तुओं को एक से प्राप्त करें Redis डेटाबेस, आइटम बेचे जाने पर काउंटर बढ़ाएं और उपयोगकर्ताओं के लिए काउंटर वैल्यू की सेवा करें एपीआई

कुछ कारणों से मैंने इस मामले में नोड.जेएस का उपयोग क्यों किया

  1. यह बहुत हल्का और तेज़ है। इस वेबसाइट पर तीन हफ्तों में 200,000 से ज्यादा दौरे हुए हैं और न्यूनतम सर्वर संसाधन इसे संभालने में सक्षम हैं।
  2. वास्तविक समय बनने के लिए काउंटर वास्तव में आसान है।
  3. Node.js को कॉन्फ़िगर करना आसान था।
  4. बहुत सारे मॉड्यूल मुफ्त में उपलब्ध हैं। उदाहरण के लिए, मुझे पेपैल के लिए एक नोड.जेएस मॉड्यूल मिला।

इस मामले में, नोड.जेएस एक शानदार विकल्प था।


127
2018-05-31 06:34



आप ऐसा कुछ कैसे होस्ट करते हैं? क्या आपको उत्पादन सर्वर पर नोडज सेट करना है? लिनक्स में? - Notflip
नोडजित्सु और हेरोोक जैसे कुछ पैस हैं। या आप वास्तव में अमेज़ॅन ec2 से लिनक्स बॉक्स iee पर nodejs सेट कर सकते हैं। देख: lauradhamilton.com/... - Sam Ames
1,814,400 सेकंड के भीतर 200,000 विज़िट। बिल्कुल प्रासंगिक नहीं है। यहां तक ​​कि धीमी सर्वर पर भी कई अनुरोधों को पूरा कर सकते हैं। स्क्रैच सर्वर। सबसे धीमी वीएम। - Tiberiu-Ionuț Stan


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

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

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

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

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

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

105
2018-06-12 13:24



हां, मैं इस सवाल का पारंपरिक तरीके से जवाब दे सकता था। मुझे लगता है कि मैं ऐसा करने के लिए योग्य हूं लेकिन इसमें से अधिकांश पहले से ही कहा जा चुका है और मैंने सोचा कि कुछ हल्के दिल से मजाक एकता को तोड़ देगा। मैं नियमित रूप से अन्य सवालों पर तकनीकी उत्तर देता हूं। - Tony O'Hagan
+1 "ज्यादातर एसिंक कोड डिबगिंग umm ... दिलचस्प होगा।" - Jackson
एसिंक कोड के लिए ES6 जेनरेटर का उपयोग करके नेस्टेड कॉलबैक से बचा जा सकता है - refactor
@ क्लेन क्रिसपोड: हां वास्तव में! ईएस 6 ने सी # शैली अपनाई है async/await तो अब हम पारंपरिक क्लीनर एसिंक नोड कोड को रोल कर सकते हैं जो पारंपरिक का भी समर्थन करता है try/catch। 2016/17 में जेएस कोडर ES6 पर स्विच कर रहे हैं। - Tony O'Hagan
यह दस हजार बार "आप बिना किसी सर्वर ब्लूटवेयर के एक्सप्रेस के साथ सुरक्षित और सुरक्षित महसूस करेंगे" - Simone Poggi


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

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

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

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

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

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

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

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

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


60
2018-04-05 17:17



मुझे यकीन नहीं है कि "अगर आपके सर्वर साइड अनुरोध में फ़ाइल आईओ या सॉकेट आईओ जैसे अवरुद्ध ओप शामिल हैं" में "जब उपयोग नहीं किया जाए" में सूचीबद्ध किया गया है। अगर मेरी समझ सही है, तो node.js की ताकत में से एक यह है कि इसमें अवरुद्ध किए बिना आईओ को संभालने के लिए शक्तिशाली असीमित साधन हैं। तो Iode को अवरुद्ध करने के लिए Node.js को "इलाज" के रूप में देखा जा सकता है। - Ondra Peterka
@OndraPeterka: आप सही हैं कि Node.js सर्वर IO को अवरुद्ध करने का इलाज कर रहा है, हालांकि यदि सर्वर पर आपका अनुरोध हैंडलर स्वयं किसी अन्य वेब सेवा / फ़ाइल ऑपरेशन को अवरुद्ध करने वाला कॉल कर रहा है, तो Node.js यहां सहायता नहीं करेगा। यह सर्वर पर आने वाले अनुरोधों के लिए केवल आईओ अवरुद्ध नहीं है बल्कि आपके ऐप अनुरोध हैंडलर से आउटगोइंग अनुरोध के लिए नहीं है। - ajay
@ajay से nodejs.org वे कहते हैं "गैर-अवरुद्ध I / O", कृपया "जब नहीं" 2 और 3 जांचें। - Omar Al-Ithawi
वर्तमान संस्करण के साथ, नोड वास्तव में क्लस्टर का उपयोग करके बहु-कोर समर्थन का समर्थन करता है। यह वास्तव में कम से कम दो बार नोड ऐप प्रदर्शन को बढ़ावा देता है। हालांकि, मुझे लगता है कि क्लस्टर lib को स्थिर करते समय प्रदर्शन दो बार से अधिक होना चाहिए। - Nam Nguyen
भारी गणना के लिए आप node.js का उपयोग कर सकते हैं। उपयोग fork। देख stackoverflow.com/questions/9546225/...। नोड कई कोरों को बहुत अच्छी तरह से संभालता है cluster मॉड्यूल। nodejs.org/api/cluster.html - Jess