Я хотел бы проверить все именованные параметры маршрута с помощью экспресс-валидатора. Я пытался сделать это в промежуточном программном обеспечении, но это не работает. Как я могу этого добиться? Ниже упрощенная версия моего кода.
module.exports = (req, res, next) => {
const routeParameters = Object.keys(req.params);
for (const parameter of routeParameters) {
param(parameter).isInt()
}
next();
};





module.exports = (req, res, next) => {
const routeParameters = Object.keys(req.params);
const invalidParams = [];
for (const parameter of routeParameters) {
if (!param(parameter).isInt()) {
invalidParams.push(param);
}
}
if (invalidParams.length) {
return res
.status(400)
.json({
message: `The following parameters are invalid: [ ${invalidParams.join(", ")} ]`
});
}
next();
};
Думаю, я не понимаю вариант использования - если параметры не проходят проверку здесь (т. Е. Они не являются целыми числами), вы хотите продолжить запрос и проверить его позже?
Допустим, первый параметр не прошел проверку. Я хотел бы сохранить эту ошибку и проверить другие параметры, чтобы потом вернуть все ошибки. Это стандартное поведение экспресс-валидатора.
Я обновил ответ, чтобы, надеюсь, отразить случай, который вы описываете.
Я занимаюсь проверкой ошибок проверки в отдельном промежуточном программном обеспечении, поэтому не могу вернуть ответ отсюда. Дополнительно хотелось бы иметь информацию об ошибках по всем параметрам.