2013-08-17 6 views
5

के साथ AngularJS और Node.js मैं एक्सप्रेस और Angularjs के साथ Node.js के साथ एक ऐप लिखने की कोशिश कर रहा हूँ।एक्सप्रेसजेएस एकीकरण

क्या यह संभव है कि मैं AngularJS को सभी लैंडिंग अनुरोधों को संभालने की अनुमति दूं? और Node.js पूरी तरह से एपीआई के लिए है? जिसका अर्थ है कि सभी मार्गों Node.js में लिखा इस तरह होगा:

app.get('/api/users', users.showAll); 
app.post('/api/users', users.create); 
app.get('/api/users/fb/:fbId', users.findByFb); 
app.get('/api/users/:userId', users.show); 
app.put('/api/users/:userId', users.update); 
app.del('/api/users/:userId', users.del); 

और AngularJS ही उदा यूआरएल को हल करने में सक्षम हो जाएगा स्थानीय होस्ट/उपयोगकर्ताओं/कुछ-नाम?

दोनों को एक साथ एकीकृत करते समय पालन करने के लिए कुछ सर्वोत्तम अभ्यास क्या हैं?

भी, क्या यह AngularJS और Node.js ऐप को दो अलग-अलग एप्लिकेशन में विभाजित करने की अनुशंसा की जाती है? और ऐसा करने के कुछ तरीके क्या हैं?

अग्रिम धन्यवाद !!

+0

@BoxerBucks द्वारा उत्तर बहुत अच्छी जगह है। मेरे पास जिथब पर एक्सप्रेस/एंगुलर/बूटस्ट्रैप/ग्रंट के लिए स्टार्टर प्रोजेक्ट है जो आपको अपने रास्ते पर लाने में मदद कर सकता है: https://github.com/jimschubert/eab –

उत्तर

6

जाहिर है, किसी भी एप्लिकेशन के डिज़ाइन और बारीकियों को यह निर्धारित किया जाएगा कि इसे वास्तव में कैसे सेट किया जाना चाहिए, लेकिन आप निश्चित रूप से एक पृष्ठ का वेब एप्लिकेशन एंग्लर बनाने में AJAX अनुरोधों को अपने node.js सर्वर साइड एपीआई पर वापस चला सकते हैं। मैंने इस तरह से कई छोटे और मध्यम आकार के ऐप्स बनाए हैं।

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

कोणीय अनुप्रयोग स्वयं जावास्क्रिप्ट फ़ाइलों में निहित होगा जो आपके एक्सप्रेस ऐप में एक स्थिर संसाधन फ़ोल्डर में रहेंगे। आम तौर पर, /js/myNgApp.js जैसे कुछ शुरू करने के लिए काम करेंगे - लेकिन आप नियंत्रक, निर्देश, सेवाएं इत्यादि को अपनी जेएस फाइलों में अलग करके अधिक विदेशी प्राप्त कर सकते हैं। यह ऐसा कुछ है जिसे आप बाद में कर सकते हैं।

एक बार कोणीय ऐप लोड हो जाने और ब्राउज़र में चलने के बाद, आपको $resource service को कोणीय में एजेक्स में एपीएक्स यूआरएल को परिभाषित करने के लिए कोणीय में उपयोग करने की आवश्यकता होगी, फिर कोणीय क्लाइंट को प्राप्त या पोस्ट (या जो कुछ भी) अनुरोध करें इन यूआरएल के लिए।

यदि सुरक्षा कुछ है तो आपको ऐप में आवश्यकता होगी, जिसे कोणीय अनुप्रयोग लोड करने से पहले एक पृष्ठ और यूआरएल के रूप में लागू करने की आवश्यकता है। एक्सप्रेस के लिए सुरक्षा ढांचे हैं जो इससे आपकी मदद कर सकते हैं। मैं passport का उपयोग करता हूं।

क्रोम में, डेवलपर टूल (विशेष रूप से नेटवर्क टैब) आपका सबसे अच्छा दोस्त बन जाएगा।

+0

सुझाव के लिए बहुत बहुत धन्यवाद, मैं निश्चित रूप से एक नज़र डालेगा पासपोर्ट .. ऐसा लगता है कि इसमें ओथ सुविधा भी है जो एपीआई कॉलर को प्रमाणित करने के लिए उपयोगी होगी। – Jerome

+0

हां, पासपोर्ट में ओएथ है जो ट्विटर, फेसबुक और कुछ अन्य स्रोतों के साथ एकीकृत करता है, या आप किसी अन्य ओथ स्रोत का उपयोग कर सकते हैं। मैंने कभी अपने ओथ स्रोत से लुढ़का नहीं है, लेकिन यदि आप करते हैं, तो आप उससे भी जुड़ सकते हैं। – BoxerBucks

संबंधित मुद्दे