#3069·joi

min(1) 验证消息在对象具有必需字段时未被触发

作者: david-littlefield创建于 2025年2月28日更新于 2025年12月19日
标签bug

运行时间

赞美音乐

QQ 运行时版本

20.18.0 (单位:千美元)

模块版本

页:1

QQ 最后一个模块版本没有发行

无回复( N)

用过

独立

  • 任何其他有关资料

在使用Joi的“min(1)”验证对象上也包含需要的字段时,“min(1)”错误信息从未显示,因为需要的字段验证优先。

你想达到什么目的 或再生的步骤?

  1. 建立一个既具有 " min(1) " 限制又需要内田的嵌入物体的计划
  2. 为 " min(1) " 约束和所需字段设置自定义错误信息
  3. 对照此方案验证一个空物体
  4. 所要求的字段错误总是显示而不是 " min(1) " 错误
从“@jest/globals”导入{描述、期望、它};
从“joi”中导入Joi;

const 对象Schema = Joi.object ({
用户:Joi.object({)
性别:Joi.string()
必需( )
空( 假)
.valid("男性","女性") 维基语录链接:名人名言 - 分类
.消息 ({
"Any.requid":"性别是要求",
"Any. only":"性别不是一种允许的价值",
"弦.base":"性别不是弦",
"弦.空":"性别不能为空".
~ , , ( ) ,
) (中文(简体) ).
必需( )
.min(1) (中文(简体) ).
. 未知( 虚假)
.消息 ({
"任何需要":"需要用户",
"object.base":"用户不是一个对象","Object.base":"User is not a object","Object","Object.base":
"object.min":"用户不能为空",.
"object.unknown":"用户不能包含未知的字段",
~ , , ( ) ,
* ;

描述 ("min(1) 在对象有需要字段时没有被触发" ), 函数 () {
其 (“ 当用户为空对象时应当丢出”), 函数 () {
const {错误} = objectSchema.validate({)
用户:QQ,
* ;
期望( error. message ). to Be(“ 用户不能为空 ” ) ;
* ;
* ;

你的结果是什么?

当验证一个空的用户对象({用户:{}}})时,Joi返回错误消息"性别是需要的",而不是"用户不能是空的",尽管我已经为min(1)限制明确设置了自定义消息. 校验将所需要的场校验排在分数(1)校验之上,使得在需要的字段出现时无法使用分数(1)出错消息.

-你期望得到什么结果?

我期望Joi尊重min(1)的制约,在验证一个空的用户对象时返回错误消息"用户不能为空". 我想能够自定义哪个验证优先,或者至少有能力在显示单个字段要求之前显示更通俗的"对象为空"消息.