如何为Sequelize阵列分配大小限制?

时间:2018-04-10 22:45:58

标签: node.js sequelize.js

我使用sequelize和sequelize迁移来制作我的postgres模型。目前,我无法弄清楚为我的一个字段(数组)分配大小限制的语法。有可能这样做吗?

现在,我的迁移文件中的特定字段显示:

industryOfFocus: {
    type: Sequelize.ARRAY(Sequelize.STRING)
  }

我的model.js文件中的特定字段显示:

industryOfFocus: {
  type: DataTypes.ARRAY(DataTypes.STRING),
  allowNull: false,
  validate: { notEmpty: true }
}

甚至可以用续集来指定大小限制吗?我发现没有堆栈溢出问题或续集文档来支持sequelize可以设置数组大小值的想法。如果不可能,那么确保我的阵列大小永远不会超过3的工作是什么?

1 个答案:

答案 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')
      }
    }  
  }
}