2012-12-05 11 views
11

मैं जावा से आ रहा हूं और दुनिया से संबंध रखता हूं और अपने पैरों को गीला करने की कोशिश करता हूं। जिस ऐप पर मैं काम कर रहा हूं वह बैकएंड और क्लाइंट पर node.js और MOngo का उपयोग करके अपॉइंटमेंट शेड्यूलिंग सिस्टम है angular.js में है।Node.js, angular.js और MongoDB के साथ प्रारंभ करना, मॉडलिंग संबंध और अन्य रैंप अप टिप्स

मैं कुछ प्रमुख अवधारणाओं को समझने की कोशिश कर रहा हूं जो मेरे जावा पूर्वाग्रह के अवशेष हो सकते हैं। प्रासंगिक स्निपेट को इंगित करने में कोई मदद, ट्यूटोरियल की सराहना की जाती है।

1) मैं मोंगो/नोड में नियुक्ति, ग्राहक और सेवा प्रतिनिधि के बीच संबंधों का प्रबंधन कैसे करूं? नियुक्ति वस्तुओं को बनाया गया है और नियुक्ति में संग्रहीत उपयोगकर्ता आईडी का संदर्भ है? क्या उपयोगकर्ता को नियुक्तियों की सूची का संदर्भ होना चाहिए?

2) उपयोगकर्ता ऑथर/ऑथज़, क्योंकि नोड को आराम से सेवा प्रदाता के रूप में उपयोग किया जा रहा है, मैं भूमिका आधारित नियंत्रण कैसे बना सकता हूं? उदाहरण के लिए जब कोई उपयोगकर्ता सेवा प्रतिनिधि के रूप में साइन अप करता है तो उसे अनुमोदित किया जाना चाहिए। क्या कोई मॉड्यूल है जो मदद कर सकता है?

3) कोई भी सामान्य मॉड्यूल जो उपयोगकर्ता साइनअप आदि पर रिपोर्ट देता है?

4) ग्राहक क्लाइंट साइड एमवीसी पर अनुमतियों का प्रबंधन कैसे करते हैं?

किसी भी पॉइंटर्स की बहुत सराहना की जाती है।

+1

वहाँ एक विशेष कारण आप MongoDB चुना है? – Chad

+0

कुछ भी विशिष्ट नहीं, नोड मोन्गो के साथ ऑनलाइन बहुत सारे ट्यूटोरियल। क्या आप एक अलग सेटअप की सिफारिश करेंगे? – retrobrain

उत्तर

3

मैं node.js से परिचित नहीं हूं, लेकिन mongodb डिज़ाइन के लिए, आपको "उप-दस्तावेज़" बनाम "लिंकिंग दस्तावेज़" के बीच चयन करना होगा।

आप how to structure many-to-many relationships in mongoose? पर एक नज़र हो सकता है।

आइडिया एक पूर्ण दस्तावेज़ पुनर्प्राप्त करना है जहां यह समझ में आता है। उदाहरण के लिए, आपके पास निम्न स्कीमा हो सकती है।

{ customer : { name: xxx }, 
    appointments: [ {date: xx, type : xxx .., servicerep: xxx}, {date: xx, type : xxx .., servicerep: xxx} ] 
} 

हालांकि, जानकारी के लिए जानकारी डुप्लिकेट की जा सकती है, आप केवल एक दस्तावेज़/उप-दस्तावेज़ को हिट करते हैं।

भले ही यह ग्राहक के पक्ष हो सकता है, इसका मतलब यह नहीं सर्वर को मान्य नहीं करना चाहिए। क्लाइंट जितना संभव हो उतना मान्य कर सकता है, लेकिन सर्वर को अभी भी सत्यापित करना चाहिए। क्षमा करें, मुझे अब जोड़ने के लिए और नहीं है।

14

उन ऐप्स को करना जहां आपके पास सर्वर-साइड घटक दोनों हैं, साथ ही साथ क्लाइंट-साइड घटक चीजों को थोड़ा अधिक जटिल बनाता है, उसके बाद सर्वर-साइड फ्रेमवर्क होता है।

  • AngularJS की तरह एक क्लाइंट-साइड ढांचे का उपयोग कर, अपने सभी टेम्पलेट्स क्लाइंट साइड, नहीं सर्वर साइड संकलित कर रहे हैं। पारंपरिक सर्वर-साइड प्रतिपादन से यह एक बड़ा अंतर है। इसका मतलब है, क्लाइंट को एचटीएमएल प्रस्तुत करने की बजाय, आप JSON भेज देंगे। आपका सर्वर अनिवार्य रूप से सुरक्षा प्रतिस्थापन के साथ एक विश्वसनीय API बन जाएगा।

  • मैं एंगुलरजेएस से बेहद परिचित नहीं हूं, एम्बर के साथ अधिक, लेकिन आप अनिवार्य रूप से एक आरामदायक सेवा बनायेंगे: https://gist.github.com/2432692। यह सर्वर के साथ एक विश्वसनीय इंटरफ़ेस पर संवाद करेगा।

  • सर्वर पर, नोडजेस का उपयोग करके, आप मोंगोस या कुछ समान जैसे ओआरएम का उपयोग करेंगे। आप संबंध, दस्तावेज, आदि बना सकते हैं ...एक नोट, आपको सर्वर, क्लाइंट दोनों पर अपने मॉडल को डुप्लिकेट करना होगा।

  • MongoDB bson का उपयोग करता है, एक धारावाहिक JSON स्ट्रिंग/वस्तु के एक द्विआधारी कूटबन्धन। चूंकि नोडजेस वी 8 जावास्क्रिप्ट इंजन का उपयोग करके बनाया गया है, जेएसओएन एक प्राकृतिक वस्तु प्रकार है और इसलिए मोंगोडीबी के साथ काम करना बेहद सरल है। NodeJS पर

  • HTTP सर्वर: NodeJS एक http सर्वर के लिए एक आधार कार्यान्वयन प्रदान करता है। यह ज्यादा नहीं है, लेकिन आप अनुरोधों का जवाब दे सकते हैं और संभाल सकते हैं। कोई सत्र, कुकी, प्रमाणन समर्थन कर रहे हैं, तो आप connect पर टॉप पारंपरिक http सर्वर बनाता है जो का उपयोग करें या ExpressJS दोनों connect और सामान्य http सर्वर है कि नोड प्रदान करता है पर बनाता है जो उपयोग कर सकते हैं। एक्सप्रेसजेएस शुरू करना बेहद आसान है, और रीस्टफुल बैकएंड के साथ अच्छी तरह से काम करता है।

यह बहुत आसान है। जाओ ExpressJS, नया ऐप्स बनाना होगा, सेटअप सभी क्लाइंट साइड सामान (AngularJS) एवं मॉड्यूल सिस्टम अगर आप का उपयोग एएमडी, CommonJS, Browserify, आदि ...

+0

क्या node.js और कोणीय के बीच मॉडल साझा करने का कोई तरीका नहीं है? मैंने सोचा कि यह node.js के लिए एक बड़ा ड्रॉ था, क्योंकि यह जावास्क्रिप्ट है। –

+0

@ सैमबर्नम नहीं कि मुझे पता है। मैं वर्तमान में एक node.js/ब्राउज़र (टॉवर) ढांचे पर काम कर रहा हूं जो एम्बर.जेएस और एक्सप्रेस के शीर्ष पर बनाता है। (संस्करण 0.5.0 - वर्तमान संस्करण बेहद अलग है)। हम एक विकल्प के रूप में मिश्रण में जोड़ा कोणीय जोड़ने की संभावना की खोज कर रहे हैं। – Daniel

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