JOI循环依赖错误与when条件

时间:2019-03-13 07:13:46

标签: node.js validation circular-dependency joi

我有3个查询参数:经度纬度半径

我有3种可能的情况:

  • 半径-具有一定值的空白,经度纬度
  • 所有3个带有值的参数
  • 所有3个参数均为空

在所有其他情况下,发送验证错误。

例如

经度 = 3.12-错误

纬度 = 2.12,半径 = 3.2-错误

经度 = 12.12,纬度 = 2.12-确定

我的模式如下:

const schema = Joi.object().keys({
    longitude: Joi.number().optional().error(new Error('LBL_BAD_LONGITUDE'))
      .when('latitude', { is: Joi.exist(), then: Joi.number().required() })
      .when('radius', { is: Joi.exist(), then: Joi.number().required() }),
    latitude: Joi.number().optional().error(new Error('LBL_BAD_LATITUDE'))
      .when('longitude', { is: Joi.exist(), then: Joi.number().required() })
      .when('radius', { is: Joi.exist(), then: Joi.number().required() }),
    radius: Joi.number().optional().error(new Error('LBL_BAD_RADIUS')),
  });

结果我得到了错误

AssertionError [ERR_ASSERTION]: item added into group latitude created a dependencies error

关于如何验证这三个参数的任何想法吗?

0 个答案:

没有答案