Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据另一个键的输入,根据需要进行一次输入_Javascript_Hapijs_Joi - Fatal编程技术网

Javascript 根据另一个键的输入,根据需要进行一次输入

Javascript 根据另一个键的输入,根据需要进行一次输入,javascript,hapijs,joi,Javascript,Hapijs,Joi,我正在使用它进行模式验证。在下面的模式中,当type为jobType.MBR时,我希望input\u file为required类型,否则file\u name必须保持required const jobObjectSchema = { type: Joi.string().valid(jobType.MBR, jobType.MP4).required(), file_name: Joi.string().required(), input_file: Joi.string() }

我正在使用它进行模式验证。在下面的模式中,当
type
jobType.MBR
时,我希望
input\u file
为required类型,否则
file\u name
必须保持
required

const jobObjectSchema = {
  type: Joi.string().valid(jobType.MBR, jobType.MP4).required(),
  file_name: Joi.string().required(),
  input_file: Joi.string()
};

我如何才能做到这一点?

使用
Joi
any()。当

const jobObjectSchema = {
  type: Joi.string().valid(jobType.MBR, jobType.MP4).required(),
  file_name: Joi.any().when('type', {
    is: jobType.MBR, 
    then: Joi.string().optional(),
    otherwise: Joi.string().required()
  }),
  input_file: Joi.any().when('type', {
    is: jobType.MBR, 
    then: Joi.string().required(),
    otherwise: Joi.string().optional()
  })
};