2017-08-04 4 views
1

telのオプションのに設定されていても、Joiが次のエラーを返しています。これをどのように修正するのですか?Joi: "tel"は空ではありません

ありがとうございました。

Error: Joi Failed: ValidationError: child "tel" fails because ["tel" is not allowed to be empty]


//Define Joi schema 
const schema = { 
    email: Joi.string().required().email({ 
     errorLevel: 64, 
     minDomainAtoms: 2 
    }).min(6), 
    tel: Joi.string().optional().min(10).max(10), 
    password: Joi.string().required().min(8).max(64) 
} 

//Check inputs 
const { error, value } = Joi.validate({ 
    email: args.email, 
    tel: tel, 
    password: args.password 
}, schema) 
+1

[* "空の文字列は、デフォルトでは許可されていないとして有効にする必要があります'allow( '')'。 "*](https://github.com/hapijs/joi/blob/v10.6.0/API.md#string- --inherits-from-any) – jonrsharpe

+0

ありがとうございます。それは完全にそれを解決しました。 – Kainan

答えて

1

...empty strings are not allowed by default and must be enabled with allow('') . However, if you want to specify a default value in case of empty string you have to use a different pattern: Joi.string().empty('').default('default value') . This tells Joi that the empty string should be considered as an empty value (instead of invalid) and which value to use as default.

参考:お使いの場合にはJoi v10.6.0 Documetations

tel: Joi.string().optional().allow('').min(10).max(10) 
関連する問題