首页 > 解决方案 > 在核心规则全部为正之前,我的 Joi 扩展规则不会被执行

问题描述

我们使用 Joi.extend() 函数扩展了 Joi,以便进行一些自定义验证。不幸的是,这个扩展只有在其他所有核心 Joi 规则都被测试为阳性时才会执行。

我现在不想发布代码,也许有一个通用的解决方案,例如 Joi 中的某种“设置”或使用 extend() 函数的常见错误。

在此先感谢您的帮助。

标签: javascriptjoi

解决方案


我通过单独执行规则来解决它。我们构建了一个这样的链,其中 requireField 是我们的自定义规则之一:

const ConfSchema = Joi.customObject().keys({ ... core rules ...}).requireField(... custom rules ...);

现在我们进入步骤:

const ConfSchema = Joi.object().keys({ ... core rules ...});
const CustomConfSchema = Joi.customObject().requireField(... custom rules ...);

推荐阅读