我正在学习如何使用 sequelize,到目前为止它是一个很棒的 ORM,但我被自定义验证消息所困扰。
我正在使用 sequelize-cli 库来处理迁移,我发现了一个问题,如果您使用 sequelize-cli 创建表,自定义验证消息将不起作用,我尝试了 sequelize.sync 方法来创建表并且它起作用了。
代码
这就是我使用自定义验证消息创建字段的方式
钱包.js
userId: {
type: DataTypes.UUID,
unique: {
name: 'Wallets_userId_unique',
msg: 'This user already have a wallet'
}
},
WalletMigration.js(不是实际的迁移文件名)
userId: {
allowNull: false,
type: Sequelize.UUID,
unique: true,
},
当我尝试使用相同的 userId 创建一个 Wallet 时,我得到了 aValidation error
但我应该得到This user already have a wallet
.
我收到的消息是数据库提供的默认消息,因为我unique: true
在迁移中使用了,如果我删除该选项,模型验证将不起作用。
我想知道我能做些什么来改变这种行为,或者我可能遗漏了什么?