我使用sequelize和sequelize迁移来制作我的postgres模型。目前,我无法弄清楚为我的一个字段(数组)分配大小限制的语法。有可能这样做吗?
现在,我的迁移文件中的特定字段显示:
industryOfFocus: {
type: Sequelize.ARRAY(Sequelize.STRING)
}
我的model.js文件中的特定字段显示:
industryOfFocus: {
type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: false,
validate: { notEmpty: true }
}
甚至可以用续集来指定大小限制吗?我发现没有堆栈溢出问题或续集文档来支持sequelize可以设置数组大小值的想法。如果不可能,那么确保我的阵列大小永远不会超过3的工作是什么?
答案 0 :(得分:3)
您需要使用自定义验证器方法。 (http://docs.sequelizejs.com/manual/tutorial/models-definition.html#validations)
industryOfFocus: {
type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: false,
validate: {
isSpecificLength(value) {
if (value.length !== 3) {
throw new Error('industryOfFocus must only have three items')
}
}
}
}