我有一个续集模型,其中2列条目需要唯一。如果给出了不唯一的电子邮件,则电子邮件条目可以正常工作并发送错误。但是,即使数据库中已经存在用户名字段,也将输入。我还需要添加第二个唯一的验证器才能使其正常工作吗?
这是我的模特:
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define("User", {
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true
}
},
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
password: {
type: DataTypes.STRING,
allowNull: false
},
profileImg: {
type: DataTypes.STRING,
defaultValue: "default.png"
}
});
User.associate = function(models) {
User.hasMany(models.Post, {
onDelete: "cascade"
});
};
User.prototype.validPassword = function(password) {
return bcrypt.compareSync(password, this.password);
};
User.hook("beforeCreate", function(user) {
user.password = bcrypt.hashSync(user.password, bcrypt.genSaltSync(10), null);
});
return User;
};
答案 0 :(得分:0)
我的心态仍然停留在MongoDB上,并且在更改模型后没有删除数据库。删除并重新创建数据库后,一切正常。