यदि मेरे पास दो फ़ील्ड हैं, तो मैं केवल तब सत्यापित करना चाहूंगा जब कम से कम एक फ़ील्ड एक खाली खाली स्ट्रिंग हो, लेकिन विफल हो जब दोनों फ़ील्ड खाली स्ट्रिंग हों।जोई का उपयोग करके, दो फ़ील्ड में से एक को रिक्त होने की आवश्यकता नहीं है
इस तरह कुछ
var schema = Joi.object().keys({
a: Joi.string(),
b: Joi.string()
}).or('a', 'b');
को मान्य नहीं करता जब या तो कुंजी a
या b
की उपस्थिति के लिए
{a: 'aa', b: ''}
or
हालत केवल परीक्षण के खिलाफ मान्य है, लेकिन है कि क्या a
के लिए शर्त परीक्षण करता है या b
सच है। Joi.string()
खाली तारों के लिए असफल हो जाएगा।
यहाँ प्रदर्शित करने के लिए
नीचेhttp://requirebin.com/?gist=84c49d8b81025ce68cfb
धन्यवाद @ केविन-वू कि मेरे लिए काम करता :) – Brendan
यह काम करता है, लेकिन वास्तव में स्केलेबल नहीं है - अगर आप इन के दो सेट था, तो आप, चार विकल्प आवश्यकता होगी आप के तीन सेट है, तो तब आपको आठ की आवश्यकता होगी। ऐसा नहीं लगता है कि हालांकि एक बेहतर तरीका है। –