Sequelize.js最小和最大长度验证器不起作用

时间:2017-06-16 07:33:44

标签: javascript node.js sails.js sequelize.js

我正在尝试通过模型验证验证minmax验证

last_name:{
            type:Sequelize.STRING,
            validate:{
                notEmpty:{
                    args:true,
                    msg:"Last name required"
                },
                is:{
                    args:["^[a-z]+$",'i'],
                    msg:"Only letters allowed in last name"
                },
                max:{
                    args:32,
                    msg:"Maximum 32 characters allowed in last name"
                },
                min:{
                    args:4,
                    msg:"Minimum 4 characters required in last name"
                }
            }
        }

minmax验证器永远不会被解雇所有其他验证器工作正常

1 个答案:

答案 0 :(得分:2)

你需要传递args数组

    max:{
         args:[32],
         msg:"Maximum 32 characters allowed in last name"
   },
   min:{
        args:[4],
        msg:"Minimum 4 characters required in last name"
   }

使用len验证器:

var Test = sequelize.define('test', {
     name: {
         type: Sequelize.STRING,
         validate: {
             notEmpty: {
                 args: true,
                 msg: "Required"
            },
            is: {
                args: ["^[a-z]+$", 'i'],
                msg: "Only letters allowed"
            },
            len: {
                args: [4,32],
                msg: "String length is not in this range"
           }
       }
    },
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
   }
}, {
tableName: 'test'
});        

  Test.create({name: "ab"}, function(error, result) {});
相关问题