如何在更新调用中使用快速验证器来存在支票名称

时间:2019-03-05 09:55:38

标签: express-validator

在添加值之前,我必须检查数据库中已经存在该名称。

因此,我决定添加快速验证器自定义选项。这在create call中工作正常。但无法在更新呼叫中使用。这是我的代码

const {check,body} = require('express-validator / check'); var models = require(“ ../ models”);

let Validations = [
    check('email').isEmail().withMessage("Invalid Email"),
    check('phone').isLength({ min: 5 }).withMessage("Min length Required"),
    check('name').not().isEmpty().withMessage("Value is Required"),
    body("name").custom(value => {
        return models.fundraisers.findByName(value).then(user => {
        if (user) {
            return Promise.reject('Name already in use');
        }
        })
    })
]

如何在更新调用中处理此问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是我的检查,在创建和更新案例时效果很好:

check('name')
  .not().isEmpty()
  .isString()
  .custom(value => {
    return Group
      .findByName(value)
      .then(groups => {
        if(groups.length > 0) {
          return Promise.reject(value + '\'s already in use');
        }
      })
  })

顺便说一句,我只定义了身体检查:

const { check, validationResult } = require('express-validator/check');

希望它会有所帮助:)