【问题标题】:joi validation: Set minimum array length conditionallyjoi 验证:有条件地设置最小数组长度
【发布时间】:2014-11-02 14:09:02
【问题描述】:

我有一个数组字段,我想确保它在满足条件时至少有一个元素:

genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})

如果我用 Joi.required().min(1) 更改了“then”字段,它会抱怨。

我可以用 Joi 做这个吗?

【问题讨论】:

    标签: node.js hapijs


    【解决方案1】:

    你没有提到错误信息是什么,但我想你测试了你的代码:

    TypeError: Object [object Object] 没有方法'min'

    出现此错误是因为min() 是数组类型的函数。在then: 部分中,您创建了一个新的验证对象,而Joi 不知道您期望那里有一个数组。所以你需要指定它:

    then: Joi.array().min(1).required()
    

    完整的验证码是:

    genre: Joi.array().includes(data.genres).when('field', {is: 'fieldValue', then: Joi.array().min(1).required()})
    

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 2019-03-05
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      相关资源
      最近更新 更多