2009-12-15 4 views
7

की सेवा के लिए कॉच डीबी का उपयोग करना मैं एचटीएमएल/स्टैंडअलोन रीस्ट आर्किटेक्चर के साथ कॉच डीबी का उपयोग करने की कोशिश कर रहा हूं। यही है, कॉच डीबी और अजैक्स शैली जावास्क्रिप्ट कोचिंग के अलावा अन्य कोई ऐप सर्वर नहीं है।एचटीएमएल

ऐसा लगता है कि क्रॉस स्क्रिप्टिंग एक समस्या है। मैं क्लाउडकिट/टोक्यो कैबिनेट का उपयोग कर रहा था और ऐसा लगता है कि आवश्यक कॉलबैक फ़ंक्शन यूआरएल में इसे खराब कर रहा था।

अब मैं कॉच डीबी की कोशिश कर रहा हूं और एक ही समस्या प्राप्त कर रहा हूं।

यहाँ मेरी प्रश्न हैं:

1) इन समस्याओं कर रहे हैं क्योंकि CouchDB या CloudKit की तरह बाकी/JSON दुकान अपने वेब पृष्ठ से एक अलग बंदरगाह पर चल रहा है? वे दोनों स्थानीय रूप से चलाए जाते हैं और "लोकलहोस्ट" से बुलाए जाते हैं।

2) मैं CouchDB मेरा पेज की मेजबानी और HTML की सेवा करते हैं चाहिए?

3) मैं यह कैसे कर सकता हूं? प्रलेखन फ्लॉप इतना स्पष्ट प्रतीत ...

धन्यवाद, एलेक्स

उत्तर

0

मैं सोच आप प्रस्तुति परत (एचटीएमएल) और मॉडल (CouchDB) के बीच कुछ परत की जरूरत है मदद नहीं कर सकता।

इस तरह आप, अनुरोध मध्यस्थता अतिरिक्त सुविधाओं और कार्यक्षमता प्रदान कर सकते हैं। फिलहाल आप प्रेजेंटेशन परत पर सीधे ऑब्जेक्ट्स प्रस्तुत कर रहे हैं, और आपके पास आगे बढ़ने वाले सिस्टम के व्यवहार को बदलने या बढ़ाने की कोई सुविधा नहीं होगी।

एक model-view-controller वास्तुकला अपनाने प्रस्तुति परत से अपने मॉडल बचाने और आप कुछ लचीलापन आगे जाकर दे देंगे।

(मैं कबूल मैं अपने क्रॉस साइट स्क्रिप्टिंग-मुद्दों पर सलाह नहीं दे सकता)

+2

Brian- वास्तव में इस वास्तुकला का बात है कि उत्पन्न करने के लिए कर सकते हैं। मुझे लगता है कि अजाक्स के साथ, नियंत्रक परत क्लाइंट पक्ष को स्थानांतरित करने लगती है। नियंत्रक (और दृश्य को अद्यतन करने का काम) पृष्ठ पर जावास्क्रिप्ट में किया जाता है। तो यह मॉडल को आरईएसटी/जेएसओएन कॉल करता है। पूरी तरह से संपन्न हो गया है, मॉडल पक्ष पर एक प्राधिकरण/सुरक्षा टुकड़ा होना आवश्यक है, लेकिन अब मैं प्रोटोटाइप सामग्री कर रहा हूं। किसी को भी CouchDB Pience में HTML के बारे में पता है? – alxross

3

मुझे लगता है कि एक ही रास्ता अपाचे में mod_proxy thorugh है। यह अपाचे से कोचडब के अनुरोध को अग्रेषित करता है ताकि क्रॉस स्क्रिप्टिंग समस्या हल हो सके।

# Configuration file for proxy 
ProxyVia ON 

ProxyPass /couchdb http://<<couchdb host>>:5984/sampleDB 
ProxyPassReverse /couchdb http://<<couchdb host>>:5984/sampleDB 
+0

आह- धन्यवाद। क्रॉस स्क्रिप्टिंग में मदद करना एक अच्छा विचार है। क्या आप (या किसी और को) जानते हैं कि एचटीएमएल की सेवा करने के लिए कोच डीबी कैसे प्राप्त करें। ऐसा करने में सक्षम होना चाहिए और मैंने इसे "डिजाइन दस्तावेज़ में" करने के संदर्भों को देखा है, लेकिन मैं वास्तव में यह देखने में सक्षम नहीं हूं कि कैसे ... – alxross

+0

आप बस "couchapps" पर एक नज़र डाल सकते हैं खुला। उदाहरण के लिए। http://github.com/jchris/toast/ बहुत छोटा और समझदार है। कॉचएप सेट अप करें और 'सोचैप पुश' निष्पादित करें। अनिवार्य रूप से, आप बस अपने एचटीएमएल को डिज़ाइन दस्तावेज़ के लिए अनुलग्नक के रूप में अपलोड करते हैं, और फिर http://127.0.0.1:52984/toast/_design/toast/index.html पर क्लिक करें। – karmi

6

कॉच डीबी आपके एचटीएमएल की सेवा/उत्पन्न करने के लिए बहुत सारे फायदे हैं।

एक बात के लिए

, पृष्ठों (जिसमें HTTP संसाधन हैं) डेटा पर डेटा के लिए या प्रश्नों से जुड़े होते हैं और CouchDB जानता है जब ETag अद्यतन करने के लिए जब पेज बदल गया है। इसका मतलब यह है कि यदि आप कॉच डीबी के सामने nginx चिपकते हैं और "कैश स्टफ" कहते हैं तो आपको सभी मुफ्त कैशिंग मिलती हैं जिन्हें आपको आम तौर पर खुद को बनाने की आवश्यकता होती है।

मैं कोचडीबी के सामने nginx> apache के लिए धक्का दूंगा क्योंकि अपाचे समवर्ती कनेक्शन को संभालने में बहुत अच्छा नहीं है और nginx + erlang (couchDB) इस पर बहुत अच्छा है।

इसके अलावा, आप सब अभी तक मेरे विचार सर्वर http://github.com/mikeal/couchdb-pythonviews जो वास्तव में दर्ज नहीं किया गया है का उपयोग कर जावास्क्रिप्ट में इन विचारों को जो CouchDB पुस्तक http://books.couchdb.org/relax/ या अजगर में में अच्छी तरह से प्रलेखित रहे हैं लिख सकते हैं, लेकिन मैं जल्द ही यह करने के लिए हो रही हो जाएगा :)

मुझे आशा है कि अन्य भाषाओं में उस दृश्य सर्वर, ताकि हर कोई CouchDB में स्टैंडअलोन क्षुधा लिख ​​सकते हैं और साथ ही दृश्य सर्वर प्रोटोकॉल में नई सुविधाओं को लागू करने शुरू करते हैं। दुकान CouchDB दस्तावेजों के अनुलग्नकों के रूप में स्थिर HTML:

+0

हालांकि, इस योजना के साथ समस्या यह है कि स्पष्ट रूप से nginx Etag का समर्थन नहीं करता है; केवल संशोधित दिनांक, इत्यादि। http://markmail.org/message/4q3umqpvz5ngunw2 और http://nginx.org/pipermail/nginx/2009-April/011382.html – taxilian

+0

हाँ, हाल ही में मैंने बहुत अधिक शिकायतें देखी हैं एक rproxy के रूप में nginx के बारे में सामान्य तो मैं हाल ही में उन समाधानों में अधिक रुचि रखता हूं जो वार्निश और अन्य कैशिंग विशिष्ट rproxies का उपयोग करते हैं। – mikeal

10

एक साधारण जवाब नहीं है। इस तरह आप सीधे कॉच डीबी से एचटीएमएल की सेवा कर सकते हैं।

वहाँ आप यह कर मदद करने के लिए एक कमांड लाइन उपकरण है, CouchApp

बुलाया पुस्तक Mikeal linked to भी कैसे CouchApp उपयोग करने के लिए यह करने के लिए पर एक अध्याय (प्रबंध डिजाइन दस्तावेज़) है।

7

3) आप CouchDB shows का उपयोग) एचटीएमएल (या किसी भी सामग्री प्रकार