2016-10-20 17 views
7

साथ ExpressJS सर्वर एकीकृत करने के लिए कैसे मैं एक सर्वर के रूप में NodeJS (एक्सप्रेस) के साथ एक angular2 एप्लिकेशन बनाने का प्रयास करें। समस्या एक संघर्ष है कि वहाँ के रूप में एक्सप्रेस, जबकि कोणीय भी प्रवेश बिंदु के रूप में मार्गों और index.html का उपयोग करता है अपने स्वयं के टेम्पलेट इंजन का उपयोग करने की कोशिश करता है, और मार्ग अनुरोध है।Angular2

मैं दोनों कैसे एकीकृत कर सकते हैं?

+0

एक angular2 परियोजना है और चल निर्धारित करते हैं, लेकिन मुझे डर है कि अगर मैं एक्सप्रेस सर्वर बनाने यह फ़ाइल संरचना को पार कर जाएगी हूँ। मुझे एक सभ्य संदर्भ नहीं मिला कि इसे कैसे हल किया जाए – Yuvals

+0

क्या यह हल करता है? http://stackoverflow.com/a/34864585/2112228 – Sharko

उत्तर

14

आमतौर पर, NodeJS/एक्सप्रेस अंतिमबिंदुओं कि कोणीय उपभोग कर सकते हैं के साथ एक API सेवा करने के लिए इस्तेमाल किया जाएगा। नोडजेएस केवल बैकएंड होगा, कोणीय केवल एक अग्रभाग होगा।

जबकि कोणीय को नोडजेएस सर्वर से परोसा जा सकता है, यह संसाधनों का अपशिष्ट है क्योंकि अधिकांश कोणीय साइटें पूरी तरह स्थैतिक हैं। यही कारण है, वे जावास्क्रिप्ट, सीएसएस और छवियों कि S3 या एक FTP से कार्य किया जा सकता है और सेवाओं के माध्यम से अपने सभी गतिशील सामग्री प्राप्त कर रहे हैं (चहचहाना से ट्वीट, एक S3 बाल्टी से छवियों, अपने कस्टम NodeJS बैकएंड, आदि से डेटा)। दूसरे शब्दों में, कोई गतिशील सर्वर पक्ष प्रतिपादन की आवश्यकता नहीं है।

मैं दृढ़ता से इस दृष्टिकोण को बनाए रखने की सिफारिश करेंगे। अपने कोणीय ऐप को एस 3 जैसे स्थिर स्टोरेज होस्ट पर होस्ट करें और नोडजेएस का उपयोग करके एक आरईएसटी एपीआई बनाएं जो आपका ऐप कोणीय सेवाओं के माध्यम से बात कर सकता है। JSON डेटा लाने के लिए GET अनुरोध भेजें। परिणामी JSON डेटा लें और अपने ऐप को पॉप्युलेट करने के लिए इसका इस्तेमाल करें। जोड़ सकते हैं या डेटा में हेरफेर (यदि आप एक बैकएंड डेटाबेस है की योजना कल्पना करते हुए) को POST, PUT और DELETE अनुरोध भेजें।

तरह से यह आम तौर पर प्रस्तुत किया जाता है पर आपके डोमेन अपने कोणीय एप्लिकेशन को http://yourdomain.com बिंदु है करने के लिए किया जाएगा। आपका कोणीय एप्लिकेशन तो http://yourdomain.com/api/ या http://api.yourdomain.com जो अपने नोड एपीआई की दिशा में रखे जाते हैं पर कॉल कर जाएगा। आप इन दोनों में से किसी के बिना अपने कोड में शारीरिक उपनिर्देशिका के लिए की जरूरत करने के लिए अपने DNS कॉन्फ़िगर कर सकते हैं।

+0

लेकिन मैं अपने स्थानों को विभाजित करने की क्या ज़रूरत है? क्या होगा यदि मैं उन्हें एक ही मूल निर्देशिका/परियोजना से चलाने के लिए चाहता हूं? – Yuvals

+0

आप उन्हें विभिन्न स्थानों पर होस्ट कर सकते हैं लेकिन अपने DNS को कॉन्फ़िगर कर सकते हैं ताकि वे एक ही डोमेन के रूप में दिखाई दे सकें। मैं एक कोडबेस में बैकएंड और फ्रंटएंड कोड को मिश्रित करने की कोशिश करने के खिलाफ दृढ़ता से सलाह दूंगा। – Soviut

+0

मैंने सामान्य होस्टिंग सेटअप के बारे में अधिक जानकारी शामिल करने के लिए उत्तर अपडेट किया है। – Soviut