Node.js Sequelizejs“;isAfter";与其他字段的验证

Node.js Sequelizejs“;isAfter";与其他字段的验证,node.js,validation,sequelize.js,Node.js,Validation,Sequelize.js,在Sequelize的文档中,他们提到了以下将日期字段值限制在某个日期之后的方法 validate: { isAfter: '2018-10-02' } 但是我想对req.body 像 字段验证器无权访问模型实例的其他属性。为了验证实例上的两个值是否通过验证检查,应在模型选项中使用Sequelize的自定义验证对象: const SomeModel = db.define( 'some_model', { start_date: { type: Sequel

在Sequelize的文档中,他们提到了以下将日期字段值限制在某个日期之后的方法

validate: {
    isAfter: '2018-10-02'
}
但是我想对
req.body


字段验证器无权访问模型实例的其他属性。为了验证实例上的两个值是否通过验证检查,应在模型选项中使用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.');
        }
      }
    }
  }
);
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.');
        }
      }
    }
  }
);