2014-09-19 9 views
13

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

{ 
    "name": "Post", 
    "plural": "Post", 
    "base": "PersistedModel", 
    "properties": { 
    "genericId": { 
     "type": "string", 
     "required":True 
    }, 
    "moderatedAt": { 
     "type": "date" 
    } 
    }, 
    "validations": [], 
    "acls": [], 
    "methods": [] 
} 

मैंने वहां दस्तावेज़ों और अन्य उदाहरणों की खोज करने की कोशिश की है लेकिन कोई सफलता नहीं है। एक समाधान जिसे मैं सोच सकता हूं, बनाने के लिए रिमोट हुक बनाने के लिए, और डालने से पहले इस फ़ील्ड को सत्यापित करें, लेकिन किसी अन्य तरीके की तलाश में है।

+0

में सेट validation नियम आप भी अपने डेटाबेस पर विशिष्टता लागू कर सकते हैं सीधे – Ravi

+1

हाँ, Strongloop के LoopbackJS प्रलेखन असंभव दुखी है। – Green

उत्तर

15

अपने common/models/post.js

Post.validatesUniquenessOf('genericId'); 
+0

समाधान के लिए धन्यवाद, लेकिन इसे पहले ही मिल गया है, क्षमा करें इसे यहां अपडेट करना भूल गया। – Nishant

+1

सही प्रमाणीकरण दस्तावेज़ https://docs.strongloop.com/display/APIC/Validating+model+data – EFernandes

+3

केवल समर्थित कनेक्टर: मेमोरी, ओरेकल या मोंगो डीबी – EFernandes

20

विशिष्टता प्राप्त करने का यह बेहतर तरीका नहीं है, लेकिन you can find here आपके मॉडल को अनुक्रमणित करने के बारे में दस्तावेज़।

बस जो फ़ील्ड आप चाहते हैं उस पर एक अद्वितीय इंडेक्स जोड़ें, और वॉयला!

अपने मॉडल के लिए, कि होगा:

{ 
    ... 
    "genericId": { 
     "type": "string", 
     "required": True, 
     "index": {"unique": true} 
    }, 
... 
} 

हालांकि, अगर genericId क्षेत्र मॉडल की वास्तविक आईडी है, मैं सुझाव है कि आप, इस तरह के रूप में यह घोषणा करते हैं तो आप findById विधि का उपयोग कर सकते हैं, और भी एक डुप्लिकेट id फ़ील्ड के निर्माण से बचें, जो तब होगा जब आप अपने मॉडल में कोई भी घोषणा नहीं करते हैं।

{ 
    ... 
    "genericId": { 
     "type": "string", 
     "id": true,  // Ensure uniqueness and avoid another model id field 
     "generated": true // Add this if you want Loopback to manage id content for you 
    }, 
... 
} 
+0

क्या आप "इस तरह घोषित कर सकते हैं" पर खर्च कर सकते हैं? धन्यवाद। – CNSKnight

+0

* नोट: यह एक पुरानी पोस्ट है, सुनिश्चित नहीं है कि यह अभी भी मान्य है *। उपर्युक्त संदेश में, कोड स्पष्टीकरण पर विस्तारित करता है: फ़ील्ड जेसन परिभाषा में 'id' prop ('true') सेट करके आप एक मॉडल आईडी के रूप में एक फ़ील्ड घोषित करते हैं। – Pandaiolo

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