【问题标题】:how to generate error when the field is empty by using express-validator in validationResult如何在validationResult中使用express-validator在字段为空时生成错误
【发布时间】:2017-12-30 00:11:05
【问题描述】:

我正在使用 express-validator。

如果字段为空,我想在validationResult中生成错误。

这是我的代码:

router.post('/register',[
    check('name').isEmpty().withMessage('Name field cannot be empty.'),
    check('email').isEmail().withMessage('Enter valid email address.'),
    check('username').isEmpty().withMessage('Username cannot be empty.'),
    check('password').isEmpty().matches('password2').withMessage('Password dont match.')
], function(req, res, next) {

  const errors = validationResult(req);
  console.log(errors.array());

  if (!errors.isEmpty()) {
    res.render('register2',{
        errors: errors.mapped(), 
        name: req.body.name,
        email: req.body.email,
        username: req.body.username,
        password: req.body.password,
        password2: req.body.password2
    });
  }
});

我想在名称字段和用户名字段为空时生成错误,但我只收到这些字段的错误:

[ { location: 'body',
param: 'email',
value: '',
msg: 'Enter valid email address.' },
{ location: 'body',
param: 'password',
value: '',
msg: 'Password dont match.' } ]

【问题讨论】:

    标签: validation express express-validator


    【解决方案1】:

    您目前正在做与您想要的相反的事情。当你这样做时:

    check('username').isEmpty().withMessage('Username cannot be empty.'),
    

    您希望用户名为空,如果不是,则会发出错误。您可以将其更改为:

    check('username').not().isEmpty().withMessage('Username cannot be empty.'),
    

    或:

    check('username').exists().withMessage('Username cannot be empty.'),
    

    改为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-07
      • 2020-01-26
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      相关资源
      最近更新 更多