我有带有验证的 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
不执行。即使发送值,它也始终显示“非空冲突”
最佳答案
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'
})
ERROR: Validation error: Not Equals,
Validation error: Not Equals
关于node.js - 在 sequelize 中定义自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66484791/