穰当多个条件
我希望做一个穰验证我的身体,但似乎从未工作和下降的所有时间在相同条件下。所以,如果我这个职位
端点:?/ elasticSearch ETYPE =滚动&滚动= 1H
身体:{}
这应该抛出一个错误,因为VLAN时是滚动在这种情况下scroll_id需要被需要,不为空,不为空。
甚至当我张贴这种
端点:?/ elasticSearch ETYPE =搜索和滚动= 1H
身体:{}
这应该抛出一个错误,因为VLAN时是搜索和在这种情况下,查询需要进行必需的。
所以用这些代码,
在一个情况下,它只是一直传递一样,如果它没有验证,即使他们不应该在我看来,和在第二种情况下通过,我得到错误:需要查询,scroll_id需要一切的时候,我打个电话。
所以有人能帮助我理解为什么这些验证是错误的?
谢谢
更新
默认情况下,如果我是这样做的:
body:
{
query:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('search'),
then: Joi.required()
}
),
scroll_id:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('scroll'),
then: Joi.required()
}
)
}
这需要查询和scroll_id所有的时间。
回答如下:从文件直接复制。
当使用淳佳验证对象,的另一输入端的值(即标头,查询,则params,有效负载和AUTH)的验证上下文中提供(在规则Joi.ref访问(“$ query.key”)) 。
所以,在你的VLAN时参考使用Joi.ref('$query.eType')
,因为你试图根据查询参数验证有效载荷,在验证阶段,它们是在不同的范围。
Joi.alternatives()
.when(Joi.ref('$query.eType'), {
is: Joi.string().equal('search'),
then: Joi.required()
})
穰当多个条件
我希望做一个穰验证我的身体,但似乎从未工作和下降的所有时间在相同条件下。所以,如果我这个职位
端点:?/ elasticSearch ETYPE =滚动&滚动= 1H
身体:{}
这应该抛出一个错误,因为VLAN时是滚动在这种情况下scroll_id需要被需要,不为空,不为空。
甚至当我张贴这种
端点:?/ elasticSearch ETYPE =搜索和滚动= 1H
身体:{}
这应该抛出一个错误,因为VLAN时是搜索和在这种情况下,查询需要进行必需的。
所以用这些代码,
在一个情况下,它只是一直传递一样,如果它没有验证,即使他们不应该在我看来,和在第二种情况下通过,我得到错误:需要查询,scroll_id需要一切的时候,我打个电话。
所以有人能帮助我理解为什么这些验证是错误的?
谢谢
更新
默认情况下,如果我是这样做的:
body:
{
query:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('search'),
then: Joi.required()
}
),
scroll_id:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('scroll'),
then: Joi.required()
}
)
}
这需要查询和scroll_id所有的时间。
回答如下:从文件直接复制。
当使用淳佳验证对象,的另一输入端的值(即标头,查询,则params,有效负载和AUTH)的验证上下文中提供(在规则Joi.ref访问(“$ query.key”)) 。
所以,在你的VLAN时参考使用Joi.ref('$query.eType')
,因为你试图根据查询参数验证有效载荷,在验证阶段,它们是在不同的范围。
Joi.alternatives()
.when(Joi.ref('$query.eType'), {
is: Joi.string().equal('search'),
then: Joi.required()
})