Sequelizejs "isAfter" проверка с другим полем - PullRequest
0 голосов
/ 02 октября 2018

В документах Sequelize они упоминают следующий способ ограничения значения поля даты до определенной даты.

validate: {
    isAfter: '2018-10-02'
}

Но я хочу выполнить эту проверку для другого поля даты из req.body

Как

validate: {
    isAfter: anotherFieldName    // fieldname instead of static value
}

1 Ответ

0 голосов
/ 02 октября 2018

Валидаторы полей не имеют доступа к другим свойствам экземпляра модели.Чтобы проверить, что два значения в экземпляре проходят проверку, вы должны использовать пользовательский объект проверки Sequelize в опциях модели:

const SomeModel = db.define(
  'some_model',
  {
    start_date: {
      type: Sequelize.DATEONLY,
      validate: {
        isDate: true
      }
    },
    end_date: {
      type: Sequelize.DATEONLY,
      validate: {
        isDate: true
      }
    },
  },
  {
    validate: {
      startDateAfterEndDate() {
        if (this.start_date.isAfter(this.end_date)) {
          throw new Error('Start date must be before the end date.');
        }
      }
    }
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...