Javascript Sequelize.js最小和最大长度验证程序不工作

Javascript Sequelize.js最小和最大长度验证程序不工作,javascript,node.js,sails.js,sequelize.js,Javascript,Node.js,Sails.js,Sequelize.js,我试图通过模型验证来验证min和max验证 last_name:{ type:Sequelize.STRING, validate:{ notEmpty:{ args:true, msg:"Last name required" }, is:{

我试图通过模型验证来验证
min
max
验证

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"
                }
            }
        }

但是
min
max
验证器从未被触发,所有其他验证器都工作正常

您需要向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) {});

您可以将len validator与args一起使用,因为[4,32]max和min将检查值。由于您有字符串,您必须使用max/min编写自定义验证器来检查字符数。如果您使用max和min验证器,它将验证给定值,即在您的情况下,它将检查给定值是否小于等于32或大于等于4。
min
max
是未定义的规则!但是
len
有效