我正在学习如何使用sequelize,到目前为止它是一个很好的ORM,但我坚持使用自定义验证消息。
我正在使用sequelize-cli库来处理迁移,我发现了一个问题,如果使用sequelize-cli创建表,自定义验证消息不起作用,我尝试使用sequelize.sync方法来创建桌子和它工作。
代码
这是我使用自定义验证消息
创建字段的方法Wallet.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创建电子钱包时,我得到Validation error
,但我应该This user already have a wallet
。
我收到的消息是数据库提供的默认消息,因为我在迁移中使用了unique: true
,如果我删除了该选项,则模型验证不起作用。
我想知道我该怎么做才能改变这种行为,或者我错过了什么?