Я пытаюсь проверить поле даты на основе информации, хранящейся в базе данных через другую модель.
Когда я тестирую API, проверка корректно работает, выдавая исключение, однако вставка происходитдо этого исключения .То есть это не мешает вставке в базу данных.Где я ошибся?
Это моя функция проверки:
module.exports = (sequelize, DataTypes) => {
const Step = sequelize.define('Step', {
...
resultDate: {
type: DataTypes.DATE,
validate: {
isEven(value){
sequelize.models.Call
.findById(this.call_id)
.then(call => {
if(value >= call.endingDate) throw new Error('Error message here!');
});
...
И вот результат:
Executing (default): SELECT [...] `Call`.`id` = '19c7e81e-5c23-4fd5-8623-0170deee6cd4');
Executing (default): INSERT INTO `Steps` [...];
Unhandled rejection Error message here!
Очевидно, что первоначальный SELECT должен выполнить проверкуоднако перед проверкой завершите работу и сгенерируйте исключение, API вставит в базу данных и уже вернет успех!
Как попросить модель дождаться всех проверок перед вставкой?