如何在adonis/node.js中创建自定义验证器?

如何在adonis/node.js中创建自定义验证器?,node.js,adonis.js,Node.js,Adonis.js,实际上,我的控制器中有一个函数store(){},可以进行多次验证,该验证返回特定于响应状态的,我想如果存在一种方法,我可以导入该验证并在create()方法之前进行测试 实际上,我的代码是: async store ({ request, response }) { const qt_options_menor_0 = this.verificaOptionsMenor0(request.body.qt_options) if(qt_options_menor_0){

实际上,我的控制器中有一个函数
store(){}
,可以进行多次验证,该验证返回特定于响应状态的,我想如果存在一种方法,我可以导入该验证并在
create()
方法之前进行测试

实际上,我的代码是:

async store ({ request, response }) {

    const qt_options_menor_0 = this.verificaOptionsMenor0(request.body.qt_options)
    if(qt_options_menor_0){
      return response
      .status(406)
      .json({ message: "Não é possível cadastrar quantidade de opções menor que 0" });
    }

    const qt_options_igual_0 = this.verificaOptionsIgual0(request.body.qt_options)
    if(qt_options_igual_0)
      return response
      .status(406)
      .json({ message: "Não é possível cadastrar quantidade de opções igual a 0" });

 const parameter = {
      ...request.all(),
      user_id: request.user_id
    }
    const parametroCriado = await Parameter.create(parameter)
    return parametroCriado
  }

       verificaQtQuizSendIgual0(qt_quiz_send){
    if(qt_quiz_send === 0){
      return true
    }else{
      return false
    }
  }

  verificaOptionsMenor0(qt_options){
    if(qt_options < 0){
      return true
    }else{
      return false
    }
  }
异步存储({request,response}){
const qt\u options\u menor\u 0=this.verificaoptions menor0(request.body.qt\u options)
if(qt\u选项\u菜单或\u 0){
返回响应
.现状(406)
.json({信息:“Nãoépossível地籍数量de opões menor que 0“});
}
const qt\u options\u igual\u 0=this.verificaOptionsIgual0(request.body.qt\u options)
如果(qt\u选项\u igual\u 0)
返回响应
.现状(406)
.json({信息:“Nãoépossível地籍数量de opões igual a 0”});
常数参数={
…请求.all(),
user\u id:request.user\u id
}
const parametroCriado=等待参数.create(参数)
返回参数
}
验证qtquizsendigual0(qt\u测试\u发送){
如果(qt_测验_发送===0){
返回真值
}否则{
返回错误
}
}
验证选项菜单0(qt_选项){
如果(qt_选项<0){
返回真值
}否则{
返回错误
}
}
这样我的控制器有很多代码,有更好的方法吗?

您可以使用

比如:

验证程序文件

“严格使用”
类选项{
获取规则(){
返回{
//你的规则
}
}
获取消息(){
var antl=this.ctx.antl;
返回{
//自定义消息
}
}
异步失败(错误消息){
返回这个.ctx.response.status(406.json)({消息:“Nãoépossível地籍测量数据0”});
}
}
module.exports=选项
命令

>adonis make:验证程序选项
使用验证器-
start/route.js

。。。
路线
...
.validator(“选项”)
当我使用:.validator(“MyValidator”)时,我收到:“未解析的函数或方法验证器(),你知道这方面的一些事情吗?这是我的代码:嗨,(我不知道这是否可行)试着将
验证器
放在
中间件
之前