Как настроить ответ об ошибке проверки в hapi.js?
При использовании опции config.validate на маршруте и сбое запроса из-за проверки, hapi возвращает ошибку, например:
{
"statusCode": 400,
"error": "Bad Request",
"message": "child \"weight\" fails because [\"weight\" is required]",
"validation": {
"source": "payload",
"keys": [
"weight"
]
}
}
Есть ли способ отправить другую отформатированную ошибку проверки?
1 ответ
Решение
Есть два способа настроить вывод:
С использованием
failAction
приписыватьconfig.validate
:config: { validate: { params: { name: Joi.string().min(3).max(10) }, failAction: function (request, reply, source, error) { error.output.payload.message = 'custom'; return reply(error).code(400); } } }
С использованием
onPreResponse
точка расширения:server.ext('onPreResponse', function (request, reply) { var response = request.response; if (response.isBoom && response.data.name === 'ValidationError') { response.output.payload.message = 'custom'; } return reply.continue(); });
См. Документацию API для более подробной информации.