【问题标题】:Validation using joi with external schema使用带有外部模式的 joi 进行验证
【发布时间】:2022-01-28 00:13:28
【问题描述】:

所以,我正在尝试验证在特定情况下是否需要某个字段。 像这样:

cake: Joi.object().keys({
            flavor: Joi.string().max(45).required(),
            price: Joi.string().length(2).required(),
            topping: Joi.string().length(2).required()
})

并且在我拥有的相同架构中:

authentication: Joi.object().keys({
      password: Joi.string().max(45).required(),
      login64: Joi.string().max(45).required()
})

我想进行如下验证:

authentication: Joi.object().keys({
      password: Joi.string().max(45).required(),
      login64: Joi.string().max(45).when('cake.flavor', {
      is: 'chocolate',
      then: Joi.required()

} })

如果蛋糕的味道是巧克力,我想要求 login64。但似乎没有任何效果......

【问题讨论】:

    标签: javascript validation object joi


    【解决方案1】:

    Joy reference 默认情况下相对于当前值的父级,在您的情况下为 authentication。您需要向上移动几个级别 (...) 才能到达 cake

    login64: Joi.string().max(45).when('...cake.flavor', {
        is: 'chocolate',
        then: Joi.required()
    })
    

    【讨论】:

    • 完美!它解决了我的问题!谢谢!
    • @actsleazy 请考虑接受答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2020-08-04
    • 2021-05-23
    • 2021-11-30
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多