Как проверить имя уже существует с помощью экспресс-валидатора в вызовах обновления - PullRequest
0 голосов
/ 05 марта 2019

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

Итак, я решил добавить пользовательский параметр экспресс-проверки.Это работает нормально при создании вызова.Но не работает в обновлении вызова.Вот мой код

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 голосов
/ 11 апреля 2019

Это моя проверка, и она хорошо работает при создании и обновлении:

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');

Надеюсь, это поможет:)

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