node.js - Joi - 根据其他键上的值需要
问题描述
我想验证一个只有两个字段(即文本和图像)的输入。文本和图像都是字符串,其中一个必须始终存在。当其中一个字段不存在时,另一个字段不能是空字符串。这是我定义的验证。
text: Joi.string()
.when('image',
{
is: Joi.string(),
then: Joi.string().allow(''),
otherwise: Joi.string().required(),
}
),
image: Joi.string().allow(null),
当我使用以下输入时,验证允许数据通过。我不知道如何更改验证以禁止以下输入。
post: {
text: ''
}
解决方案
在验证时使用exist()
而不是:string()
when('image', {
is: Joi.exist(),
then: Joi.string().allow(''),
otherwise: Joi.string().required(),
})
推荐阅读
- css - 如何将图像设置为顶部?
- swift - generate a specific number of SCNPlane [Swift, ARkit]
- c# - EF Core 3.0 手动设置连接字符串
- php - PHP - 在文本中查找多个关键字的最快方法?
- reactjs - Firebase无限滚动正确的解决方案?
- html - 为什么 BS4 Scrollspy 不能正常工作?
- java - 导航抽屉中的返回语句是什么意思?
- html - 设置 div 悬停动作以不移动其他元素
- javascript - 创建动态表以比较数据列
- prometheus - 我不能将原始请求数据推送到 Prometheus 吗?