2013-07-04 7 views
7

मैंने Node.js और MongoDB के साथ एक डेटाबेस बनाया है, और मैं Angular.js ऐप लिख रहा हूं जिसे मेरे डेटाबेस से प्रविष्टियों में कॉल करना चाहिए, साथ ही साथ उन प्रविष्टियों में लिखने में सक्षम होना चाहिए।मोंगो डीबी को फ्रंट एंड से कनेक्ट करना?

मुझे पता है कि सीधे जावास्क्रिप्ट से डेटाबेस में लिखने के साथ कुछ सुरक्षा समस्याएं हैं, लेकिन मैं इस तरह की चीज़ों के लिए बिल्कुल नया हूं। और भी, मुझे MongoDB से डेटा को मेरे सामने के अंत में भेजने के तरीके पर कोई निर्देश नहीं मिल रहा है ताकि मैं वास्तव में इसका उपयोग कर सकूं!

मैं दोनों को एक साथ कैसे जोड़ूं? Node.js में, मैं अपने डेटाबेस में लोड करने और इसे पढ़ने/लिखने के लिए जावास्क्रिप्ट require फ़ंक्शन का उपयोग कर रहा था, लेकिन मैं ब्राउज़र में ऐसा करने का कोई तरीका नहीं समझ सकता। node में मैं दोनों को एक साथ जोड़ने के लिए mongojs मॉड्यूल का उपयोग कर रहा था, लेकिन यह मेरे कोणीय ऐप में काम नहीं करता है क्योंकि मैं require का उपयोग नहीं कर सकता।

मुख्य प्रश्न यह है कि मैं मोन्दो डीबी में फ्रंट एंड में कैसे लोड करूं?

संपादित करें: मुझे लगता है कि यह कोणीय-विशिष्ट के बजाय, मोंगोडीबी को फ्रंट एंड पर कॉल करने के बारे में एक और बुनियादी सवाल है। अगर मैं गलत हूं, तो मुझे बताएं।

+2

मुझे यकीन नहीं है कि मैं समझता हूं। आप ब्राउज़र से सीधे डेटाबेस में कनेक्ट करना चाहते हैं? यह एक ** बहुत ** बुरा विचार है। यही कारण है कि आप नोडजेएस (या कोई अन्य वेब सर्वर) का उपयोग करना चाहते हैं: आप डीबी से वेब सर्वर पर डेटा लोड करते हैं और उसके बाद इसे HTML/JSON/किसी भी प्रारूप में जोड़ते हैं और फिर इसे HTTP के माध्यम से ब्राउज़र पर भेजते हैं। – freakish

+0

आप आगे बढ़ने पर mongojs मॉड्यूल की आवश्यकता के लिए क्या समस्याएं कोशिश कर रहे हैं? आपको एक मॉड्यूल लोडर की आवश्यकता होगी जैसे कि [RequJS] (http://requirejs.org/)। –

उत्तर

11

संक्षिप्त उत्तर: आप नहीं करते हैं।

लंबा उत्तर: MongoDB सीधे क्लाइंट को डेटा का पर्दाफाश करने के लिए डिज़ाइन नहीं किया गया है। क्लाइंट वेबसर्वर पर एप्लिकेशन के साथ इंटरैक्ट करता है - आपके मामले में Node.js में लागू किया गया है - और वेबसर्वर डेटाबेस के साथ संचार करता है।

+---------+ +---------+ +---------+ 
|Browser | | Node.js | | MongoDB | 
|  ------->  | |   |  
|   | |   | |   | 
|   | |  ------->  | 
|   | |   | |   | 
|   | |   | |   | 
|   | |  <-------  |  
|   | |   | |   | 
|  <-------  | |   | 
|   | |   | |   | 
+---------+ +---------+ +---------+ 

इस अभ्यास में अर्थ है, जावास्क्रिप्ट क्लाइंट अनुप्रयोग उपयोगकर्ताओं को ब्राउज़र में मार डाला (WebSockets या किसी अन्य विधि के माध्यम से, एक सामान्य पेज अनुरोध के माध्यम से XmlHttpRequest के माध्यम से) Node.js के लिए अनुरोध भेजता है। Node.js इस अनुरोध को स्वीकार करता है और फिर इसे पूरा करने के लिए आवश्यक डेटा के लिए MongoDB से संपर्क करता है। जब Node.js को डेटाबेस से डेटा प्राप्त हुआ, तो यह प्रतिक्रिया बनाने के लिए इसका उपयोग करता है, और इसे क्लाइंट को भेजता है।

क्लाइंट एप्लिकेशन को यह एहसास नहीं है कि सर्वर अनुरोध को पूरा करने के लिए बैकएंड डेटाबेस का उपयोग करता है।

आपके लिए मेरी सीखने की सिफारिश अब डेटाबेस को छोड़ना है। क्लाइंट को Node.js सर्वर एप्लिकेशन से कुछ स्थिर डेटा लोड करने के लिए angular.js का उपयोग करें। जब आपको यह काम मिल गया, तो MongoDB से डेटा प्राप्त करने के लिए सर्वर-साइड का विस्तार करें।

+1

मैंने वास्तव में आपकी सीखने की सिफारिश पहले से ही की है - AngularJS ऐप मैंने जेएसओएन के माध्यम से डेटा में भार लिखा है। मुद्दा यह है कि, मैं वास्तव में समझ में नहीं आता (और न ही मैं अपनी व्यापक खोज में पाया गया है) डीबी को फ्रंटेंड में कैसे लिंक करें। मुझे मध्यस्थ के रूप में नोड का उपयोग करने में प्रसन्नता हो रही है, लेकिन मैंने कभी भी कोई कार्यान्वयन नहीं देखा है जहां क्लाइंट -> नोड -> डीबी। क्या आप ऐसे संसाधनों का सुझाव दे सकते हैं जहां मैं इसके बारे में और जान सकूं? मैं मुख्य रूप से एक फ्रंटेंड देव हूं इसलिए बहुत सारे मेरे सिर पर रास्ता है। – Jascination

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