代码之家  ›  专栏  ›  技术社区  ›  Rilcon42

使用通配符时,即使测试失败,validatorjs也会通过所有测试用例

  •  0
  • Rilcon42  · 技术社区  · 5 年前

    我有一个订单对象数组,我试图验证每个对象的属性。 my runkit code example here 有人能告诉我为什么它通过了测试,什么时候它应该失败,以及如何修复它吗?

    object body是一个对象数组:

      let body={order:[
      {CompanyId:12},
      {CompanyId:00}]}
    

    验证规则:

    const orderValidationRule = {
      "order.*.CompanyId": "required|digits_between:4,6", //4 to 6 digits long
      "order.*.Location": "required:size:2", 
      "order.*.CustomerId": "required:min:0"}
    

    调用验证方法来检查对象:

    const validator = (body, rules, customMessages, callback) => {
      const validation = new Validator(body, rules, customMessages);
      validation.passes(() => callback(null, true));
      validation.fails(() => callback(validation.errors, false));
    };
    
      validator(body.order, orderValidationRule, {}, (err, status) => {
      if (!status) {
        throw `validation failed: ${JSON.stringify(err)}`;
      }
      else{
        console.log(`validation success: ${status} ${JSON.stringify(body.order)}`)
      }
    });
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   Rilcon42    5 年前

    我错误地格式化了订单验证规则。我需要:

    "order.*.CompanyId": "between:1000,9999999|numeric"
    "order.*.Location": "required|size:2"
    "order.*.CustomerId": "required|min:0|numeric"
    
    推荐文章