【问题标题】:Adonis not showing custom error for Route ValidatorAdonis 未显示 Route Validator 的自定义错误
【发布时间】:2022-11-01 10:56:22
【问题描述】:

我有以下路线:

  Route.resource("veiculos", "VeiculoController").validator(
    new Map([[["veiculos.store"], ["StoreVeiculo"]]])
  );

我的验证器文件如下所示:

'use strict'

class StoreVeiculo {
  get rules () {
    return {
      vei_placa: 'required',
    };
  }

  get messages () {
    return {
      'required':  'Placa do veiculo nao foi enviada',
    };
  }
  
}

module.exports = StoreVeiculo

我预计会收到此错误消息:“Placa do veiculo nao foi enviada”,但我收到的是默认的“验证失败。请确保您已正确填写所有字段”。

是的,我正在向 /veiculos 端点发送 POST 请求。

P.S:我正在使用 adonis v4 并按照此处的步骤操作: https://legacy.adonisjs.com/docs/4.1/validator#_route_validator

【问题讨论】:

    标签: javascript validation adonis.js


    【解决方案1】:

    我找到了答案,我需要添加一个名为的异步方法失败到我的验证器类:

      async fails(errorMessages) {
        return this.ctx.response.status(400).send(errorMessages[0].message);
      }
    

    这将确保我定义的客户信息获取消息()将被退回。

    根据我的测试,它不会一次显示您在请求中可能遇到的所有错误。

    我的最终验证器类如下所示:

    'use strict'
    
    class StoreVeiculo {
      get rules () {
        return {
          vei_placa: 'required',
        };
      }
    
      get messages () {
        return {
          'required':  'Placa do veiculo nao foi enviada',
        };
      }
    
      async fails(errorMessages) {
        return this.ctx.response.status(400).send(errorMessages[0].message);
      }
      
    }
    
    module.exports = StoreVeiculo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多