यह I / O फाइल की एक टन को संभालने में विशेष रूप से मजबूत है और मुझे उम्मीद है कि यह एक टन नेटवर्क संचार को भी अच्छी तरह से हैंडल करेगा। यह सॉकेट-चालित ऐप्स के लिए विशेष रूप से लोकप्रिय लगता है। ध्यान रखने वाली महत्वपूर्ण बात यह है कि यदि आपकी ज़रूरतें मौजूदा पुस्तकालयों से पूरी नहीं हुई हैं (तो कई हैं) आपको कुछ सी में गोता लगाने की आवश्यकता हो सकती है जो जेएस कमांड से बंधे हो सकते हैं। आप अतिरिक्त नोड प्रक्रियाओं को भी खोल सकते हैं, लेकिन मुझे संदेह है कि बहुत कुछ कर लगाने से मिल सकता है (मैं मान रहा हूं - गलत हो सकता है - उनमें से प्रत्येक के लिए एक वी 8 उदाहरण है)।
जेएस एकल-थ्रेडेड और अवरुद्ध है, जिसका अर्थ है कि फ़ंक्शन कॉल पूरा होने तक और कुछ भी निष्पादित नहीं कर सकता है। यह जेएस की एक वांछित विशेषता थी, अनिवार्य रूप से आपके हाथों से सभी थ्रेडिंग और कतारबद्ध चिंताओं को लेना। जेएस सी / सी ++ सामान को हुड के तहत अधिक बहु-थ्रेडेड फैशन में चलने से नहीं रोकता है, इसलिए जेएस की भूमिका वास्तव में अधिक वास्तुकला / दूत है। यदि आप छवि-प्रसंस्करण कर रहे हैं, तो आप इसे तुल्यकालिक जावास्क्रिप्ट कमांड के साथ संभालना नहीं चाहते हैं क्योंकि आपके ऐप या सर्वर पर बाकी सब कुछ तब तक अवरुद्ध रहेगा जब तक आप इसे पूरा नहीं कर लेते। विचार यह है कि आप किसी छवि को बाध्य C / C ++ कार्यक्षमता से संसाधित करने के लिए कहते हैं, और फिर छवि के संसाधित होने पर 'किए गए' ईवेंट का जवाब दें।
इसके लिए यह आवश्यक है कि किसी भी Node.js एप्लिकेशन में JS भारी घटना और कॉलबैक से प्रेरित हो या यह बहुत खराब प्रदर्शन करेगा। इसलिए आपको नोड में बहुत सारी विधि कॉल नहीं दिखेंगी जो बाद में उपयोग के लिए फ़ंक्शन नहीं सौंपती हैं। एक बात जो नोड में बहुत तेजी से स्पष्ट हो जाती है वह यह है कि आप बदसूरत दुनिया के लिए हैं यदि आपको कॉलबैक पिरामिड को संभालने का कोई तरीका नहीं मिलता है। जैसे
//event CBs are more DOM-style than Node style and this isn't built-in Node file I/O
//keeping it simple and quick since I'll just get Node stuff wrong from memory
file.get('someFile.txt', function(e){
e.fileObj.find('some snippet', function(e){
someFinalCallBackHandler( e.snippetLocations );
} );
} );
सौभाग्य से इस बेहतर से निपटने के लिए बहुत सारे उपकरण और उदाहरण हैं। ज्यादातर वादे तंत्र के इर्द-गिर्द घूमते हैं और बस एक फंक्शन में एक दूसरे के कॉलबैक स्टेट्स का जवाब देने के लिए फंक्शंस की एक श्रृंखला का पीछा करते हैं, जो हुड के नीचे आपके लिए बदसूरत पिरामिड सामान करता है।
व्यक्तिगत रूप से, मैं प्यार को ध्यान में रखते हुए कहता हूं कि हमें जेएस उच्च स्तर पर मिलता है और क्रोम के करीब सी / सी ++। यह परम कॉम्बो है और इसने मुझे सी सीखना शुरू करने के लिए प्रेरित किया है और जब तक आप कुछ शोध नहीं करते हैं तब तक पुस्तकालय की क्षमता को कम नहीं होने देता है। नोड पुस्तकालयों का उत्पादन बहुत तेज गति से हो रहा है और बहुत तेजी से परिपक्व हो रहा है। यदि आप कुछ भी नहीं कर रहे हैं तो बहुत ही असामान्य हालात अच्छे हैं, किसी ने इसे कवर किया है।
रेल से सबसे बड़ा अंतर यह है कि जेएस के रेल पर होने की संभावना नहीं है क्योंकि यह थे। हम इसे करने में सक्षम होने के लिए कोड करते हैं, हालांकि आप इसे बहुत तेज़ी से चाहते हैं, इसलिए कारक के साथ खुद को लटका देने के लिए रस्सी है और जेएस में हाल के वर्षों तक आर्किटेक्चर सुंदर DIY रहा है। मैं उस स्वतंत्रता को कहता हूं, लेकिन मुझे लगता है कि आदर्श को बहुत सारे देवों के रूप में नहीं देखा जाता है।
इसके अलावा, Node.js में आपको कभी भी "मणि" की समस्या नहीं होगी क्योंकि आपने मैक के अलावा किसी अन्य चीज़ पर स्थापित करने का प्रयास किया था। क्लाइंट-साइड वेब देवता निर्भरता के मुद्दों को समाप्त कर देते हैं और यहीं से बहुत सारे नोड्स कोर आ रहे हैं। यदि यह प्रत्येक लोकप्रिय मंच पर 5 मिनट या उससे कम समय में बॉक्स से बाहर काम नहीं करता है, तो हम आम तौर पर इसे उखाड़ फेंकते हैं और टॉस करते हैं। मुझे अभी तक एक लोकप्रिय मॉड्यूल में भाग लेना है जो मुझे काम करने के लिए कुछ विशेष करने की आवश्यकता है। पैकेज प्रणाली, उत्कृष्ट है।
लेकिन अपने मूल प्रश्न का अधिक स्पष्ट रूप से / संक्षिप्त रूप से उत्तर देने के लिए: क्या यह पृष्ठभूमि प्रक्रियाओं के साथ अच्छा है?
हां, नोड मूल रूप से घटनाओं और कॉलबैक के माध्यम से ऐप चलाने के माध्यम से पृष्ठभूमि की प्रक्रिया है।