Валидатор AdonisJS выдает ошибку даже при правильной передаче данных

#node.js #adonis.js

Вопрос:

Мой класс проверки выглядит так:

 
export default class CreateUserValidator {
  constructor(protected ctx: HttpContextContract) {}

  public schema = schema.create({
    username: schema.string({}, [
      rules.alpha(),
      rules.unique({ table: 'users', column: 'username' }),
    ]),
    email: schema.string({}, [rules.email(), rules.unique({ table: 'users', column: 'email' })]),
    password: schema.string({}),
    rol: schema.enum([Rol.MANAGER, Rol.SUPERUSER, Rol.WORKER]),
  })

 
  public messages = {}
}

 

и это мой пользовательский контроллер

 

export default class UsersController {
 
    public async store(ctx: HttpContextContract) {
    console.log(ctx.request.body())
    await ctx.request.validate(CreateUserValidator)
    const user = new User()
    await user
      .fill({
        email: ctx.request.input('email'),
        username: ctx.request.input('username'),
        password: ctx.request.input('password'),
        rol: ctx.request.input('rol'),
      })
      .save()
    console.log(user.$isPersisted)
    return {
      done: true,
    }
  }
}

 

Проблема в том, что даже если я передаю все данные по мере необходимости, они продолжают отвечать следующим образом

   {
    "errors": [
        {
            "rule": "required",
            "field": "username",
            "message": "required validation failed"
        },
        {
            "rule": "required",
            "field": "email",
            "message": "required validation failed"
        },
        {
            "rule": "required",
            "field": "password",
            "message": "required validation failed"
        },
        {
            "rule": "required",
            "field": "rol",
            "message": "required validation failed"
        }
    ]
}
 

Я проверил, и данные поступают без проблем в теле запроса, я не знаю, делаю ли я что-то не так

Комментарии:

1. Можете ли вы предоставить полезную нагрузку для запроса?

Ответ №1:

При routes.ts попытке использовать post в качестве метода.

Комментарии:

1. Вместо добавления «это должно сработать…» в качестве ответов приводятся подробные ответы, которые фактически дадут ответ на вопрос.