我如何在 adonis /node.js 中制作自定义验证器?
How i can make custom validators in adonis /node.js?
实际上我的控制器中有一个函数 store(){}
可以进行多项验证,此验证 return 响应状态特定,我在想是否存在一种方法可以导入此验证和测试在 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
}
}
这样我的控制器有很多代码,有更好的方法吗?
您可以使用Adonis validator
喜欢:
验证器文件
'use strict'
class Option {
get rules() {
return {
// Your rules
}
}
get messages() {
var antl = this.ctx.antl;
return {
// Custom messages
}
}
async fails(errorMessages) {
return this.ctx.response.status(406).json({ message: "Não é possível cadastrar quantidade de opções menor que 0" });
}
}
module.exports = Option
命令
> adonis make:validator Option
使用验证器 - start/route.js
...
Route
...
.validator('Option')
实际上我的控制器中有一个函数 store(){}
可以进行多项验证,此验证 return 响应状态特定,我在想是否存在一种方法可以导入此验证和测试在 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
}
}
这样我的控制器有很多代码,有更好的方法吗?
您可以使用Adonis validator
喜欢:
验证器文件
'use strict'
class Option {
get rules() {
return {
// Your rules
}
}
get messages() {
var antl = this.ctx.antl;
return {
// Custom messages
}
}
async fails(errorMessages) {
return this.ctx.response.status(406).json({ message: "Não é possível cadastrar quantidade de opções menor que 0" });
}
}
module.exports = Option
命令
> adonis make:validator Option
使用验证器 - start/route.js
...
Route
...
.validator('Option')