2015-03-24 6 views
5

हूल्लो, मेरे पास मोंगोस के साथ सहन करने के लिए एक क्रूक्स है। क्या मोंगोस स्कीमा के साथ JSON-Shema का उपयोग करने का कोई तरीका है? कहें कि मैं JSON-Schema जैसे मानक का उपयोग करके अपने एपीआई डेटा स्कीमा को परिभाषित करना चाहता हूं, क्योंकि यह अच्छा है। ऐसा लगता है कि जब मैं मोंगोस/मोंगोडीबी का उपयोग करना चाहता हूं तो मुझे इसे फिर से परिभाषित करने की आवश्यकता है! यह काफी बदसूरत नकल है जिसे मैं टालना पसंद करता हूं। आदर्श रूप से, जेएसओएन-स्कीमा परिभाषा को बदलने से मोंगोडीबी स्कीमा भी बदल जाएगा। यदि मैं जॉय.जेएस सत्यापन पुस्तकालय का उपयोग करता हूं तो एक समान समस्या दिखाई देगी। क्या किसी को इसका समाधान मिला है? या क्या कोई वैकल्पिक दृष्टिकोण है?JSON-Schema के साथ एक स्कीमा परिभाषित करें और Mongoose का उपयोग करें?

धन्यवाद

+1

मुझे यकीन है कि अपने जेसन-स्कीमा को लेना संभव है और इसे स्वचालित रूप से जावास्क्रिप्ट का उपयोग करके एक मोंगोस स्कीमा में परिवर्तित करना संभव है। दिन के अंत में, जब आप इसे पार्स करते हैं तो वे केवल ऑब्जेक्ट्स होते हैं। –

+0

जबकि यह काफी उचित है, मैं सोच रहा था कि किसी ने अतीत में ऐसा कुछ किया है और यह प्रयास हर किसी के लिए उपलब्ध कराया गया है, क्योंकि यह मेरे लिए एक सुंदर स्पष्ट समस्या जैसा प्रतीत होता है। मैंने उपकरण की खोज की और अब तक कोई नहीं मिला। – sebbulon

+1

https://www.npmjs.com/package/json-schema-converter –

उत्तर

5

इस पुस्तकालय का प्रयास करें: https://www.npmjs.com/package/json-schema-to-mongoose दूसरों वहाँ भी कर रहे हैं बाहर। मैंने json-schema-to-mongoose बनाया क्योंकि अन्य पुस्तकालय मेरी आवश्यकताओं के अनुरूप नहीं थे।

इसके अलावा, मैं का उपयोग कर TypeScript से json-schema उत्पन्न करना चाहता हूं। यह बनाता है कि json-schema अधिक स्थिर रूप से टाइप किया गया है।

2

यहां पर चिमिंग क्योंकि मैंने इस समस्या में भी भाग लिया है और एक समाधान मिला है जो प्रदान किए गए सुझावों का विकल्प है।

कोई सादा जेएस ऑब्जेक्ट लेने और इसे जेएसओएन स्कीमा और मोंगोस स्कीमा में बदलने के लिए https://github.com/nijikokun/generate-schema का उपयोग कर सकता है। मुझे इस उपकरण को सत्यापन और दृढ़ता के साथ मौजूदा कोड को पुनः लोड करने के मामले में आसान होना चाहिए क्योंकि आपके पास पहले से ही एक उदाहरण वस्तु शुरू हो सकती है।

+0

धन्यवाद, यह बहुत उपयोगी लगता है – sebbulon

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