如何对多个项目使用 Joi 的 `or()` 函数?例如`or(`a`, ['b-1', 'b-2'])`

问题描述

曾经有一段时间在使用 Joi 时,您可以将一个数组传递给 or() 函数,但是,这不再受支持。我想要 1 个项目或一组 x 个项目。例如,a['b-1','b-2'] 必须存在。

旧语法看起来像这样:

export const schema = Joi.object({
  a: Joi.string(),b-1: Joi.string(),b-2: Joi.string(),}).or('a',[ 'b-1','b-2' ]);

我使用的是 17.4 版本。而且我知道我可以通过以下方式完成这项工作:

.or('a','b-1')
.or('a','b-2')

然而,这意味着 context.peers 不包含每个键,这意味着我不能创建这样的错误消息:

'object.missing': 'One of these properties <code>{#peers}</code> are required.',

有什么办法可以让这个工作吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)