javascript - 当值无效时,Joi 使用默认值
问题描述
我正在尝试使用 Joi 验证一些数据。但是,当提供的值无效时,我想使用默认值。我当前的验证如下所示:
field: Joi.string()
.optional()
.valid('a', 'b', 'c', 'd')
.default('a', { invalid: true }),
因此,当我得到例如y时,会发生验证错误并且不使用默认值。任何帮助都会得到帮助
解决方案
您可以使用 alternatives.try(schemas)
此架构来实现您想要的:
const schema = Joi.object().keys({
field: Joi.alternatives().try([
Joi.string().valid('a', 'b', 'c', 'd'),
Joi.empty(Joi.any())
]).default('a')
})
您还可以通过joi 16.0.0any.failover(value)
上的可用版本(尚未发布)来实现这一点。
推荐阅读
- javascript - 将元素按钮更改为图像
- c# - 为公共交通中的所有消费者设置队列参数
- javascript - 制作 UMD 库时如何处理 fetch 等功能(适用于浏览器/节点)
- android-studio - Android Studio 中的主题未正确更改
- node.js - 如何使用 greenlock-express 在 node.js 上获取 SSL?
- git - 为什么“git fetch origin bugfix”不起作用?
- apache-kafka - kafka connect hdfs sink 滞后监控
- openlayers - 如何将 GeoServer 上的 WMS(Web 地图服务)覆盖到 Openlayers 地图
- android - 蓝牙不会在后台模式下扫描附近的设备 android 11+
- fullcalendar - 未在完整日历上显示的事件