2012-12-17 19 views
6

मैंने कई बैकबोन ऐप्स बनाए हैं और क्लाइंट-साइड कोड संरचना और संगठन की सराहना की है। मैं एक्सप्रेस का उपयोग करके नोड विकास में आगे बढ़ रहा हूं, और मुझे पता नहीं है कि मार्गों के संचालन में एक्सप्रेस और बैकबोन कैसे मिलकर काम कर सकते हैं।क्या बैकबोन और एक्सप्रेस राउटर एक एक्सप्रेस एप्लिकेशन में मिलकर काम कर सकते हैं?

+0

Backbone.Router क्लाइंट साइड के लिए है रूटिंग, यानी: जब आप AJAX के माध्यम से पृष्ठ को अपडेट करते हैं तो URL को बदलने के लिए HTML5 इतिहास API का उपयोग करना। तुम क्या करने की कोशिश कर रहे हो? – jordanj77

उत्तर

3

आपको यह समझने की आवश्यकता है कि नोड और बैकबोन एक-दूसरे से स्वतंत्र हैं।

  • नोड सर्वर साइड (उदाहरण, एक डेटाबेस के साथ काम करने, एपीआई की सेवा आदि) के लिए है।
  • बैकबोन क्लाइंट-साइड जावास्क्रिप्ट एमवीसी फ्रेमवर्क है जो आपको अपने क्लाइंट-साइड जावास्क्रिप्ट एप्लिकेशन को व्यवस्थित करने के लिए एक संरचना प्रदान करता है। (ब्राउज़र में आवेदन)

आप अपने क्लाइंट साइड में एक रीढ़ आवेदन कर सकते हैं और यह किसी भी बैक-एंड या तो नोड, रेल, पीएचपी आदि ...

अधिक जानकारी के लिए अप करने के लिए हुक कर सकते हैं जानकारी क्लाइंट-साइड पर एमवीवीएम पैटर्न और जावास्क्रिप्ट फ्रेमवर्क की जांच करें।

बैकबोन हैश मार्गों का उपयोग करता है:

http://backbonetutorials.com/why-would-you-use-backbone/

http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/

+1

आप बैकबोन मॉडल और संग्रह, और बैक-एंड पक्ष पर विचार और घटनाओं का उपयोग कर सकते हैं, और शायद कुछ समायोजनों के साथ राउटर –

+0

यह सही है। मैंने प्रश्न पूछने वाले को पहले अवधारणा को समझने के लिए सरल जानकारी दी थी। –

+1

धन्यवाद सर्डर, मैं समझाना भूल गया कि मैं एक्सप्रेस का उपयोग कर रहा हूं। मुझे बैकबोन और क्लाइंट-साइड जावास्क्रिप्ट की मजबूत समझ है। मुझे यकीन नहीं है कि कैसे एक्सप्रेस रूटिंग और बैकबोन रूटिंग सह-अस्तित्व में हो सकती है। बैकबोन ऐप में, मैं इसे लिखूंगा ताकि अगर कोई विज़िटर foo पथ पर/foo करने के लिए नेविगेट करता है तो मेरे राउटर में होगा और एक फ़ंक्शन निष्पादित करेगा जो बैकबोन मॉडल और दृश्य उत्पन्न करेगा। हालांकि, एक एक्सप्रेस ऐप में, एक्सप्रेस इस रूटिंग को संभालना चाहता है और अपना स्वयं का फ़ंक्शन चला सकता है (req, res)। क्या ये एक साथ काम कर सकते हैं या मुझे एक चुनना है? – AndrewHenderson

2

एक दोस्त ने मुझे जवाब दिया। उदाहरण http://yoursite.com/#foo लिए

एक्सप्रेस का उपयोग करेगा परंपरागत http://yoursite.com/foo

आप रूटर एक दूसरे के आधार पर एक से स्वतंत्र है जो आप के लिए पथ को संबोधित उपयोग कर सकते हैं - क्लाइंट साइड कार्यों के लिए एक हैश मार्ग और सर्वर साइड कार्यक्षमता के लिए परंपरागत मार्ग ।

दोनों राउटर सह-अस्तित्व में रह सकते हैं।

1

बैकबोन और एक्सप्रेस एक साथ कैसे काम कर सकते हैं इस पर आपका प्रश्न वास्तव में ठीक से उत्तर नहीं दिया जा सकता है, क्योंकि वास्तव में अनगिनत तरीके हैं जिन पर वे एक साथ काम कर सकते हैं। उम्मीद है कि नीचे दी गई कुछ जानकारी आपको वह करने में मदद कर सकती है जो आप करना चाहते हैं।

सबसे पहले, आप उपयोग www.example.com/foo (कोई #) क्लाइंट साइड (रीढ़) पर मार्गों कर सकते हैं - Backbone.history.start() दस्तावेज में pushState विकल्प देखें। क्लाइंट साइड और सर्वर की ओर से मार्गों को एकीकृत करना संभव है। हालांकि, यह कैसे करना है यह बिल्कुल आसान नहीं है।

उन लिंक्स के तहत जानकारी में से कुछ आपको मदद मिल सकती है:

आपने लिखा है कि आपके पास बैकबोन के साथ अनुभव है लेकिन आप हाल ही में नोड में जा रहे हैं, इसलिए मुझे लगता है कि आप केवल एक्सप्रेस की तुलना में अन्य ढांचे के लिए खुले हैं। आप उदाहरण का उपयोग करने पर विचार कर सकते हैं। रीस्टफुल सेवा बनाने के लिए restify (एक्सप्रेस के अतिरिक्त) जिसे आप बैकबोन के साथ एकीकृत कर सकते हैं।

Derby या Meteor जैसे पूरे ढांचे भी हैं जो एक कोड आधार का उपयोग कर क्लाइंट साइड और सर्वर दोनों पक्ष को कवर करते हैं और आप केवल राउटर से अधिक साझा कर सकते हैं।

(इसके अलावा, मैं सिर्फ इस साल के (2013) HTML5DevConf बात मिल गया है:। Surviving Robots and Old Browsers by Server-side Backbone मैं इसे अभी तक देखा नहीं है लेकिन यह आपकी समस्या के लिए बहुत प्रासंगिक लगती है।)