假设我有一个User
模型,并将基于该模型创建一个名为users
的表。
我将其字段定义如下。
User.init({
username: {....},
password: {....}
}, {sequelize, modelName: 'user'});
让我们假设我要求用户确认密码(一种非常普遍的做法),并且想要验证这两个字段(password
和cpassword
)是否相同,并且我想这样做作为使用模型范围验证的模型验证的一部分,所以我的模型将变成这样。
User.init({
username: {....},
password: {....},
cpassword: {...},
validate: {
checkIfEqual() {
if (cpassword !=== password) throw new Error("not same")
}
}
}, {sequelize, modelName: 'user'});
但显然,我不想在users表中使用列cpassword。
我可以在调用User.Create之前手动进行检查,但是我希望将其作为整体用户模型验证的一部分。
有什么解决方法吗?
答案 0 :(得分:1)
我认为您正在寻找的是VIRTUAL
属性。它们没有存储在表中,但是您可以在models
中使用它们。
我在Sequelize documentation上找到了很好的例子。请检查一下。