Экспресс-валидатор: как параметры передаются в функции валидатора

Мне любопытно, как параметры передаются промежуточному программному обеспечению валидатора, выдержка взята из express-validator, например, язык_программирования передается в функцию check().

const { check, oneOf, validationResult } = require('express-validator/check');
app.post('/start-freelancing', oneOf([
  check('programming_language').isIn(['javascript', 'java', 'php']),
  check('design_tools').isIn(['photoshop', 'gimp'])
]), (req, res, next) => {
  try {
    validationResult(req).throw();

    // yay! we're good to start selling our skilled services :)))
    res.json(...);
  } catch (err) {
    // Oh noes. This user doesn't have enough skills for this...
    res.status(422).json(...);
  }
});

person Humoyun Ahmad    schedule 19.04.2018    source источник


Ответы (1)


check('programming_language')

«programming_language» — это параметр запроса. Не нужно ничего передавать отдельно. Он забирает из

req.body.programming_language
req.cookies.programming_language
req.headers.programming_language
req.params.programming_language
req.query.programming_language

То же самое для 'design_tools'

req.body.design_tools
req.cookies.design_tools
req.headers.design_tools
req.params.design_tools
req.query.design_tools
person Koder    schedule 19.04.2018