#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. Вместо добавления «это должно сработать…» в качестве ответов приводятся подробные ответы, которые фактически дадут ответ на вопрос.