Я пытался проверить свою полезную нагрузку с помощью схемы joi.Но это не возвращает ошибку, которую я написал в схеме, а показывает только одну ошибку.Даже если я задаю полезную нагрузку, например name = int, появляется только одна пользовательская ошибка, несмотря на то, что 2-й ввод aka username имеет целочисленное значение:
{"statusCode": 400,
"error":" Неверный запрос ",
" message ":" имя, ожидающее строку "}
скорее оно должно было бы печатать
{" statusCode": 400,
" error ":" Bad Request ",
" message ":" имя, ожидающее строку "/" username, ожидающее строку "}
это мой код: server.js
const server = Hapi.server({
port: 3000,
routes: {
validate: {
options: {
abortEarly: false
},
failAction: async (request, response, err) => {
throw Boom.badRequest(err.message);
},
},
},
});
joi-schmea.js
const NamePayload = Joi.object().keys({
name: Joi.string().required().error(new Error('name expecting a string')),
username: Joi.string().required().error(new Error('username expecting a string')),
age: Joi.integer().required().error(new Error('age expecting a number')),
});
rout.js:
validate: {
payload: Schema.NamePayload,
},
Iхочу, чтобы почтальон показывал все сообщения об ошибках, а не только первое сообщение об ошибке .И я также не хочу использовать сообщение об ошибке по умолчанию child must be string/int
ошибка типа, поэтому я использую новую ошибку.Я прочитал всю статью об этой ошибке, но ничто не решило мою проблему.Это версия хапи и джой, которую я использую:
@ hapi / joi: ^ 15.0.3,
@ hapi / hapi: ^ 18.3.1,