Я использую Express -validation для проверки полей запроса. все работает как положено, кроме кода ошибки ответа .
У меня есть следующий код:
//
// ValidationLeaner.js
const Joi = require('joi');
module.exports = {
body: {
name: Joi.string().min(3).max(20).required(),
classifierId: Joi.number().integer().positive().required()
}
}
//Route.js
const { Router } = require('express')
const Validate = require('express-validation')
const ValidationLearner = require('./ValidationLeaner')
const router = Router()
router.route('/').post(Validate(ValidationLearner), ...someFunction)
module.exports = router
При отправке запроса POST
с телом: {name: "Leaner01", classifierId: false}
. Я получаю следующий ответ, который является правильным:
{
"status": 400,
"statusText": "Bad Request",
"errors": [
{
"field": [ "classifierId" ],
"location": "body",
"messages": [ "\"classifierId\" must be a number" ],
"types": [ "number.base" ]
}
]
}
К сожалению, код ответа 500 Внутренняя ошибка сервера , а не 400 , как указано в теле ответа.
Как мы можем заставить Express -валификацию отправить тот же код ответа, который указан в теле (статус: 400)?