Вот документация для валидаторов: https://sequelize.org/master/manual/validations-and-constraints.html. Он говорит, что выдает ошибку, если он не работает
Допустим, у меня есть таблица пользователей, и я хочу, чтобы было добавлено не более 500 пользователей, поэтому я создаю валидатор:
{
sequelize,
tableName: 'users',
validate: {
limitUsers: async function(x) {
const count = await sequelize.models.User.count({...});
if (count > 500) {
throw new Error(
`blah blah`,
);
}
}
},
},
},
Когда я создаю пользователь, это часть транзакции, но вызов выглядит примерно так:
try {
const user = await user.create(
{
...
},
{ transaction },
);
} catch (e) {
console.log('Handle error here');
....
}
По какой-то причине уловка не вызывает ошибку, выданную валидатору, а просто выдает 500, не попадая в уловку . Почему это происходит? Я просто не понимаю, как работают обещания?