簡體   English   中英

嵌套驗證中的hapi / joi描述性錯誤

[英]hapi/joi descriptive error in nested validation

我正在嘗試使用https://github.com/hapijs/joi進行對象驗證的嵌套數組,我的代碼如下( 此處是操場)

const Joi = require("@hapi/joi")

const schema = Joi.array().required().items(
        Joi.object().required().keys({
            name: 'room_range',
            value: Joi.object({
                min: Joi.number().required(),
                max: Joi.number().min(Joi.ref('min')).required()
            })
        }),

        Joi.object().required().keys({
            name: 'anything',
            value: Joi.object({
                min: Joi.number().required(),
                max: Joi.number().min(Joi.ref('min')).required() 
            })
        }),
    )

const result = schema.validate([
    {
        name: 'room_range',
        value: {
         min: 'dddd',
         max: 2
        }
      },{
       name: 'anything',
       value: {
         min: 1,
         max: 2
       }
      }
]);

console.log('error: ', result.error);

我得到這個錯誤

exports.ValidationError: "value" does not contain 1 required value(s)

然后,前端將無法通過錯誤msg知道。

您可以嘗試以下方法:

value: Joi.object({
  min: Joi.number().required().error(() => 'error message here'),
  max: Joi.number().min(Joi.ref('min')).required().error(() => 'error message here'),
}),

如果您需要在對象或數組上顯示錯誤消息,則應該可以僅在對象上執行相同的操作。

value: Joi.object({
  min: Joi.number().required(),
  max: Joi.number().min(Joi.ref('min')).required(),
}).required().error(() => 'error message here'),

“ error()”采用錯誤的實例或函數。 https://hapi.dev/family/joi/?v=16.1.4#anyerrorerr

也許您可以在這里找到更多有用的信息: Node.js + Joi如何顯示自定義錯誤消息?

希望這會有所幫助,因為我不確定您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM