Как проверить значения флажков с помощью экспресс-валидатора? - PullRequest
0 голосов
/ 13 января 2019

В своей веб-форме я использую флажок, чтобы выбрать список компаний для каждой записи флажка, я дал название компании в качестве атрибута «значение». В nodejs я использую экспресс-валидатор для проверки формы. Мне не ясно, как проверять и дезинфицировать пользовательский ввод для этих элементов флажка.

Я вижу, что во всех примерах экспресс-валидатор использует имя параметра формы для проверки определенного параметра (например, check ('userName') в качестве промежуточного программного обеспечения. Но для флажков конкретный параметр будет присутствовать только тогда, когда пользователь выберет этот параметр. Если у меня есть 10 вариантов, и пользователь выбирает только 4 из них, то req.body будет иметь только эти параметры. А также я хочу, чтобы все они проходили одинаковую проверку и дезинфекцию. Подскажите пожалуйста как это сделать.

Я использую версию NodeJS: 10,8 Экспресс валидатор: 5.3.0 Мои значения флажков: company_a1, company_a2, ... company_a10. Я попытался написать собственный Validator и проверить для каждого параметра body буквенно-цифровое значение, но проверка не вызывает ошибку, даже если значение содержит буквенно-цифровые строки

async function validateReportParams(body, { req, loc, rpath }) {

 for (const par of Object.keys(req.body)) {
    try {
      check(req.body[par].isAlphanumberic());
    } catch (err) {
        return Promise.reject(err);
    }
  }
}
exports.genReport = [
  validateReq,
  param().custom(validateReportParams),
  async (req, res, next) => { ... }
];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...