У меня есть модель User с ее валидациями. Единственная проверка, которая не работает, - это.

User.init({
    confirmation: {
        type: DataTypes.STRING,
        allowNull: true,
        validate: {
            notNull: {
                msg: "Not null"
            },
            areEquals(value) {
                if (value !== this.password) {
                    throw new Error("Not Equals");
                }
            }
        },
    }
    // ...
})

areEquals не выполняется. И он всегда показывает «ненулевое нарушение» даже при отправке значения

0
Jouio 5 Мар 2021 в 02:56

1 ответ

Лучший ответ
User.init({
    confirmation: {
        type: DataTypes.STRING,
        validate: {
            notNull: false, // this is boolean
            areEquals: (value) => { // Updated 

                console.log(this.password) // while insert new data, password is null

                if (value != this.password) {
                    console.log('**')
                    throw new Error("Not Equals");
                }

                return true // must return true
            }
        },
    },
});

Контрольная работа

await db.user.upsert({
    name: '123123123',
    password: '123456',
    confirmation: '3456'
})

ОШИБКА: ошибка проверки: не равно,
Ошибка проверки: не равно

0
Wang Liang 5 Мар 2021 в 13:55