क्या मुझे Angularjs का उपयोग करने के लिए node.js की आवश्यकता है?


79

मैं angular.jsअपनी वेबसाइट में अपने छवि संपादन उपकरण के लिए उपयोग करना चाहूंगा । क्या मुझे node.jsभी चाहिए?

मैं परिदृश्य को नहीं समझता। अगर मुझे इसकी आवश्यकता नहीं है, तो हम नोडज और एंगुलरज दोनों का एक साथ उपयोग कब करते हैं?


अलग अलग बातें। (केवल सामान्य चीज जावास्क्रिप्ट है)
सेर्गी पारशिव

एक क्लाइंट है और एक सर्वर है। क्लाइंट में जावास्क्रिप्ट सर्वर पर उसी भाषा पर निर्भर नहीं है। यहाँ क्या भ्रम है?
नील लून

1
सरल शब्दों में उत्तर नहीं है
रौनक कथूरिया

1
के बाद पता चला कि कोणीय और नोड जे एस क्या है, यह सवाल मुझे मूर्खतापूर्ण लगता है ..:
मणिकंदन अरुणाचलम

6
मुझे लगता है कि कोणीय की आधिकारिक वेबसाइट पर ट्यूटोरियल हर किसी को भ्रमित करता है। यह एक बैकएंड सर्वर के रूप में NodeJS का उपयोग करता है। वास्तव में, जब तक आप AJAX या ऐसा कुछ भी उपयोग नहीं कर रहे हैं, तब तक आप अपने कंप्यूटर पर पूरी तरह से बिना किसी समस्या के Angular चला सकते हैं।
हारून लियू

जवाबों:


65

क्लाइंट साइड इमेज एडिटिंग टूल बनाने के लिए आपको NodeJS की आवश्यकता नहीं है।

AngularJS एक वेब एप्लिकेशन फ्रेमवर्क है, जिसे Google और समुदाय द्वारा बनाए रखा जाता है, जो सिंगल-पेज एप्लिकेशन बनाने में सहायता करता है, जिसमें क्लाइंट साइड पर CSS और जावास्क्रिप्ट के साथ एक HTML पेज होता है।

लेकिन अगर किसी दिन आप उन चित्रों को सर्वर पर अपलोड और संग्रहीत करना चाहते हैं और उन्हें कई ग्राहकों द्वारा सुलभ बनाया जाएगा - तो हाँ आपको एक सर्वर की भी आवश्यकता होगी। इस सर्वर को NodeJS के साथ बनाया जा सकता है।


1
साभार @Catalin मुंतीनु अब मैं समझता हूं कि इसका क्या मतलब है।
मणिकंदन अरुणाचलम

2
इसके अलावा, जब आपको सर्वर की आवश्यकता होती है, तो मैं आपको स्क्रैच से एक बनाने की सलाह देता हूं। आपको यह समझने की आवश्यकता है कि यह एक जटिल ढांचे का उपयोग करने से पहले कैसे काम करता है जैसे MEANया SailsJS
कैटालिन मुनतानू

1
, मैं php द्वारा सर्वर पर छवि संभाल रहा हूँ
मणिकंदन अरुणाचलम

क्या होगा यदि मेरे पास बैकएंड एप्लिकेशन है और चल रहा है और मैं जो भी निर्माण करना चाहता हूं वह सिर्फ फ्रंट एंड है? क्या कोणीय केवल काफी अच्छा है?
अरुण

@ अगर आपको AngularJS के साथ दृश्यपटल बनाना है तो आपको NodeJS की आवश्यकता नहीं है।
कैटलिन मुनतानू

80

मै तुम्हारा दर्द समझ सकता हू।

कोणीय 2 विकास के लिए किसी नए व्यक्ति के लिए, मैं उस चीज़ के लिए सर्वर साइड प्रौद्योगिकियों को सीखने के दर्द को महसूस कर सकता हूं जो अनिवार्य रूप से क्लाइंट साइड तकनीक है । मेरी समझ से:

  1. node.jsकेवल एक कोणीय 2 अनुप्रयोग की निर्भरता का प्रबंधन करने के लिए उपयोग किया जाता है। यदि आप किसी तरह का उपयोग किए बिना उन निर्भरताओं को प्राप्त करने का प्रबंधन कर सकते हैं node.js, npmया jspmफिर आप अपने एप्लिकेशन को ऑफ़लाइन चला और विकसित कर सकते हैं। हालाँकि, इसे मैन्युअल रूप से करने में समय की एक अनमोल मात्रा लगेगी क्योंकि आपको फ़ाइलों को मैन्युअल रूप से डाउनलोड करना होगा, जिसमें अन्य निर्भरताएँ हो सकती हैं, जिन्हें अन्य फ़ाइलों को फिर से डाउनलोड करने की आवश्यकता होगी (हाँ मैं वहां गया हूँ)। node.jsया उस मामले के लिए npmया jspmइस प्रक्रिया को स्वचालित करने के साथ-साथ फाइलों को कॉन्फ़िगर करने के सभी आवश्यक कदम उठाता है (jspm ) ताकि जब भी आप अपने आवेदन में किसी विशेष निर्भरता का उपयोग करें, तो उस विशेष निर्भरता की अन्य निर्भरता भी आपके सिस्टम में मौजूद होगी।
  2. कुछ ब्राउज़र, विशेष रूप से Google Chrome सुरक्षा उद्देश्यों के लिए स्थानीय रूप से लोड की गई फ़ाइलों को प्रतिबंधित करता है ताकि Angular 2 द्वारा उपयोग की जाने वाली कुछ HTML 5 प्रौद्योगिकियाँ फ़ाइल का उपयोग करते समय एक त्रुटि उत्पन्न करें: प्रोटोकॉल। तो आपको एक सर्वर की आवश्यकता होती है जिससे आप अपने एप्लिकेशन की सेवा कर सकते हैं ताकि सभी उपलब्ध HTML 5 प्रौद्योगिकियाँ चलने के लिए Angular 2 के लिए उपलब्ध हों।
  3. node.jsयह hot-module-reloadतेजी से अनुप्रयोग विकास के लिए क्षमता के लिए भी आवश्यक है क्योंकि यह file watcher apiस्रोत कोड में परिवर्तन का पता लगाने के लिए प्रदान करता है ।

लेकिन एक नोड्यूलर एप्लिकेशन को नोड के बिना ऑफ़लाइन विकसित करने का एक तरीका है।

  1. याद रखें जब मैंने कहा था कि यदि आप सभी आवश्यक निर्भरताएं प्राप्त करने का प्रबंधन कर सकते हैं, तो आप अपना आवेदन ऑफलाइन रूप से चला और विकसित कर सकते हैं? यदि आप किसी ऐसे पैकेज को पा सकते हैं या बना सकते हैं जिसमें आपके लिए आवश्यक सभी निर्भरताएं हैं, तो आपके लिए निर्भरता का प्रबंधन करने के लिए आपको npm या jspm की आवश्यकता नहीं है।
  2. के लिए file-access-restrictionबात नहीं, आप एक विस्तार के रूप अपनी परियोजना लोड कर सकते हैं। एक्सटेंशन में सभी उपलब्ध HTML 5 तकनीकों के साथ-साथ कुछ शक्तिशाली एपी (सर्वर पर दिए गए एप्लिकेशन तक भी उपलब्ध नहीं है) का उपयोग करने की क्षमता है, जबकि एक ही समय में आपके विकास के वातावरण के लिए स्थानीय है। यदि आपको एक्सटेंशन के रूप में अपने एप्लिकेशन की सेवा करनी है तो आपको HTML 5 तकनीकों तक पहुंचने के लिए एक वेब सर्वर को फायर करने की आवश्यकता नहीं है।
  3. के लिए hot-module-reloadक्षमता है, आप इसे दूसरी तरह से संपर्क कर सकते हैं। स्थानीय सिस्टम में फ़ाइलों में परिवर्तन की निगरानी के लिए वेब सर्वर में एक फाइल वॉचर होने के बजाय, आप इसे एप्लिकेशन से ही कर सकते हैं। चूंकि आवेदन कर सकते हैं fetchया आवेदन xmlhttprequestद्वारा आवश्यक संसाधनों, आप समय-समय पर fetchया xmlhttprequestसंसाधनों आपके आवेदन की जरूरत है और यह कुछ कैश से तुलना कर सकते हैं। लेकिन आपको कैसे पता चलेगा कि किन फाइलों को जांचना है? आप के लिए देख सकते linksपृष्ठ के भीतर, script, कीimg.यदि आप मॉड्यूल लोडर के रूप में SystemJS का उपयोग करते हैं, तो आप इसकी रजिस्ट्री का उपयोग अपने आवेदन के लिए आवश्यक फाइलों को देखने के लिए कर सकते हैं लेकिन पृष्ठ में लोड नहीं किया गया है, क्योंकि यह ट्रांसप्लड या कुछ और है। यह सब करते हुए ट्रांसपिलिंग या प्रीप्रोसेसिंग नॉन-नेटिव कोड के अतिरिक्त ओवरहेड के साथ आपके सिस्टम में एक परफॉर्मेंस ड्रेन हो सकती है, इस जॉब को आउटसोर्स किया जा सकता है, web workerजो आपके एप्लीकेशन कोड के लिए सिस्टम में मुख्य एक्ज़ीक्यूटिव थ्रेड को खाली कर देगा।

मुझे विश्वास नहीं है? यहाँ सबूत है।

  1. जीथब पर क्रोम प्रोजेक्ट में कोणीय में एक ज़िप्ड पैकेज होता है जिसमें न्यूनतम कोणीय 2 अनुप्रयोग विकसित करने के लिए आवश्यक निर्भरताएं होती हैं (न्यूनतम रूप से, मैं क्विकस्टार्ट पृष्ठ पर संदर्भित हीरोज ट्यूरिस्ट के टूर की बात कर रहा हूं)। ताकि यदि आप एक ऐसे सिस्टम पर हैं, जो नोड द्वारा समर्थित नहीं है। जेएस (हाँ उदाहरण के लिए, क्रोमओएस हैं) या सिर्फ एक प्रतिबंधित प्रणाली पर जिसमें नोड.जेएस उपलब्ध नहीं है, सभी आवश्यक निर्भरताएं उपलब्ध हैं और आप नहीं करते हैं आपके लिए आवश्यक निर्भरता को प्रबंधित करने के लिए npm या jspm की आवश्यकता है।
  2. अवधारणा विस्तार का एक प्रमाण है जो स्थानीय रूप से क्रोम एक्सटेंशन के रूप में नायकों के ट्यूटोरियल (विकास फाइलें, टाइपस्क्रिप्ट और सभी) के दौरे का कार्य करता है।
  3. विस्तार भी hot-module-reloadSystemJS के लिए एलेक्सिस विनसेंट द्वारा विकसित hmr-primitives में हुक करके एक कार्यक्षमता को लागू करता है। hot-module-reloadकार्यक्षमता एक भी जावास्क्रिप्ट फ़ाइल से सक्षम है, इसलिए यदि इस कार्यक्षमता की जरूरत नहीं है या बहुत ज्यादा संसाधनों को ले जा रहा है, तो आप बस कोड की हमलावर लाइन को दूर कर सकते हैं।

लेकिन हालांकि चेतावनी दी है।

  1. यदि आप इस प्रणाली का उपयोग कर रहे हैं, तो आपको अपने विकास पैकेज को अपडेट करने का एक तरीका चाहिए, क्योंकि प्रौद्योगिकी आगे बढ़ती है और यह तीव्र गति से आगे बढ़ती है (क्या कोणीय 3 की बात के साथ जब एंगुलर 2 अभी जारी किया गया है) या आप जिस तकनीक का उपयोग कर रहे हैं अपने आवेदन को विकसित करने के लिए अप्रचलित हो सकता है या यह कि कहीं एक लाइन के साथ एक एपीआई परिवर्तन आपके आवेदन को भविष्य में कार्यात्मक होने से रोक सकता है। इन प्रकार के पैकेजों को मैन्युअल रूप से बनाए रखने के लिए आपको निर्भरता के लिए अप-टू-डेट रिपॉजिटरी की गारंटी नहीं है।
  2. Chrome में Angular की तरह Chrome एक्सटेंशन के रूप में अपने एप्लिकेशन को बंडल करने से प्रदर्शन में अड़चनें आएंगी। चूंकि कोड ट्रांसप्लड है और मॉड्यूल आलसी लोड किए गए हैं, आप जेआईटी संकलन और अन्य प्रदर्शन संवर्द्धन के अग्रिम खो देते हैं जो आधुनिक जावास्क्रिप्ट इंजन ब्राउज़र पर कोड रन को अनुकूलित करने के लिए उपयोग करते हैं। हालांकि, प्रदर्शन में आप जो खोते हैं, आप उस तकनीक का उपयोग करने के लिए लचीलापन प्राप्त करते हैं जिसे आप विकसित करना पसंद करते हैं। हमेशा एक व्यापार होता है। इसके अलावा, प्रदर्शन हिट शुरुआत में ही होता है क्योंकि कोड लोड किया जाता है। एक बार जब यह एप्लिकेशन द्वारा लोड किया गया है, तो सिस्टम को पता चल जाएगा कि प्रदर्शन संवर्द्धन कैसे लागू किया जाए। जब आप अपना एप्लिकेशन वितरित करते हैं, तो आपको वास्तव में आधुनिक जावास्क्रिप्ट इंजन के प्रदर्शन में वृद्धि का लाभ उठाने के लिए आवश्यक संसाधनों को संकलित करने की आवश्यकता होती है।
  3. hot-module-reloadवर्तमान में यह क्षमता एक फ़ाइल वॉचर को लागू करने का एक हैक तरीका है जो एक परियोजना के लिए आम सम्मेलनों (temp1.ts, temp1.css, temp1.htm) का उपयोग करता है क्योंकि कोई निश्चित सूची प्राप्त करने के लिए कोई रास्ता नहीं है (मैं इस पर गलत हो सकता है) आवेदन के लिए आवश्यक सभी संसाधन लेकिन मुख्य पृष्ठ पर (लोड किए गए या पूर्व-संसाधित संसाधन) लोड नहीं किए गए हैं।

7
यह स्वीकृत उत्तर होना चाहिए। मेरा बस यही सवाल था और आपने भ्रम को दूर कर दिया, जो मेरे पास भी नहीं था। ब्रावो ...
गौरव चौहान

मैं सहमत नहीं हूँ, नोडज केवल सर्वर साइड टैक्नोलाजी नहीं है। मुझे लगता है कि सवाल ग्रंट, योमन आदि का उपयोग करने के बारे में अधिक है जिन्हें नोडज स्थापित करने की आवश्यकता है।
जेरेम बी

9

सर्वर साइड पर जावास्क्रिप्ट लिखने के लिए नोड.जेएस का उपयोग किया जाता है। angular.js क्लाइंट साइड फ्रेमवर्क है।

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


2
यह उत्तर वह है जो मुझे कोणीय और NodeJS के बारे में भ्रामक लगता है: CLIENT पर, ऐसे कई उपकरण हैं जिनके लिए NodeJS की आवश्यकता होती है - मूल रूप से कुछ भी जो नोड पैकेज मैनेजर (npm) उपयोगिता का उपयोग करके स्थापित किया गया है। मुझे अभी भी समझ में नहीं आया है कि जब यह उस साइट को होस्ट करने का समय आता है जो क्लाइंट पर NodeJS और npm- स्थापित पैकेजों का उपयोग करता है - क्या आपको उन स्थापित पैकेजों के लिए सर्वर पर NodeJS काम करने की आवश्यकता है? यदि उत्तर "शायद" है, तो यह जानने में क्या कारक शामिल हैं कि क्या NodeJS को वेब सर्वर पर भी होना चाहिए?
१२:१० बजे

1
आपके प्रश्न का उत्तर देने के लिए, हाँ और नहीं। npmएक पैकेज मैनेजर है। के साथ एक पैकेज स्थापित करना पैकेज की npmनकल करने और अपनी स्थानीय निर्देशिका पर निर्भरता के समान है। इसलिए अगर आप चाहते हैं कि npmआपके साथ आने वाले अच्छे फीचर्स को स्थापित किया जाए npmऔर आपको ऐसा करने के लिए नोड की आवश्यकता है। अगर आपको इसके फीचर्स की जरूरत नहीं है npm तो आपको इसे इंस्टॉल करने की जरूरत नहीं है और आप खुद ही पैकेज को कॉपी कर सकते हैं। यदि आपको लगता है कि आपकी साइट को इस तिथि पिकर का उपयोग करने की आवश्यकता है, यदि आप एक स्थापित टिप्पणी चलाते हैं जो इसे कॉपी करेगी और इसे नीचे कोणीय करेगी या आप इसे मैन्युअल रूप से कर सकते हैं।
हसनैन

धन्यवाद - मैं आगे का पालन करने के लिए एक नया प्रश्न पोस्ट कर सकता हूं। लेकिन मैं आपका उदाहरण समझ गया। मैं एक .NET प्रोग्रामर हूं और IIS चलाने वाले विंडोज सर्वर पर होस्ट करूंगा। अधिकांश होस्टिंग कंपनियां सर्वर पर NodeJS का समर्थन नहीं करती हैं; तब फिर से, मैं नोड के साथ क्लाइंट पर जो कुछ भी कर रहा हूं वह अपने एनपीएम (पैकेज मैनेजर) का उपयोग ऐड-ऑन / निर्भरता को "स्थापित" करने के लिए कर रहा है। उसके बाद, मुझे उम्मीद है कि मैं कॉन्फ़िगर फ़ाइलों को वेब सर्वर पर कॉपी कर सकता हूं और वे नोड के बिना ठीक चलेंगे। मुझे नहीं लगता कि मैं सर्वर पर नोड क्यों चाहूंगा जब तक कि मेरे पास वैसे भी सांत्वना पहुंच न हो और आवश्यकतानुसार उस पर
npm

8

नंबर Angularक्लाइंट साइड पर और Nodeसर्वर साइड के लिए उपयोग किया जाता है ।

वे MEAN स्टैक के रूप में एक साथ जाने के लिए उपयोग करते हैं लेकिन यह आवश्यक नहीं है।


3

काम करने के लिए आपको AngularJS के लिए Node.JS की आवश्यकता नहीं है। NodeJS सर्वर साइड है, AngularJS क्लाइंट साइड है।

यदि आप AngularJS के लिए नए हैं, तो मैं इस ट्यूटोरियल AngularJS ट्यूटोरियल का सुझाव दूंगा । ट्यूटोरियल में आप NodeJS का उपयोग करेंगे, आप समझेंगे कि दोनों एक साथ क्यों काम करते हैं, लेकिन आवश्यक नहीं हैं।


3

यह जानना कठिन है कि आपका इमेजिंग एडिटिंग टूल कैसे काम करता है। लेकिन आपके प्रश्न का उत्तर देने के लिए, नहीं, आपको AngularJS का उपयोग करने के लिए Node.js की आवश्यकता नहीं है।

कोणीय एक फ्रंट-एंड जावास्क्रिप्ट फ्रेमवर्क है जो क्लाइंट वेब ब्राउज़र में संचालित होता है।

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

इसलिए यदि आपके इमेजिंग एडिटिंग टूल को जावास्क्रिप्ट में विकसित किया गया है और आपके एप्लिकेशन ने कोणीय और नोड (एक वेब सर्वर के रूप में) का उपयोग किया है, तो कोड को क्लाइंट साइड या सर्वर साइड पर निष्पादित किया जा सकता है।

यह देखने के लिए MEAN स्टैक पर पढ़ें कि कहाँ नोड और कोणीय फिट हैं। आपको नोड की बिल्कुल भी आवश्यकता नहीं है, लेकिन सभी को एक ही भाषा में विकसित करना अच्छा है।


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

1
उपयोगकर्ता छवि हेरफेर के लिए जैसे घुमाएँ और फ़सल करें, यह समझ में आता है कि फ़्रंटेंड पर कार्यशीलता है। इस तरह की नियमित कार्यक्षमता छवि के आकार के अनुसार आप क्लाइंट संसाधनों को मुक्त करने के लिए नोड सर्वर पर डाल सकते हैं। इन दिनों क्लाइंट साइड हार्डवेयर बहुत शक्तिशाली है शायद कोई आवश्यकता नहीं है।
JayMc

0

NodeJs स्थापित करने का कारण क्रोम, फ़ायरफ़ॉक्स इत्यादि जैसे वेब ब्राउज़र के रूप में केवल जावास्क्रिप्ट को समझता है, हमें अपने टाइपस्क्रिप्ट को जावास्क्रिप्ट में बदलना होगा। इसलिए, जावास्क्रिप्ट के लिए टाइपस्क्रिप्ट कोड बनाने के लिए टाइपस्क्रिप्ट ट्रांसप्लर को Node.js की आवश्यकता होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.