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

Jab*_*baa 3 javascript node.js sequelize.js sails.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"
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

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

Kam*_*ran 6

您需要将 args 传递给数组

    max:{
         args:[32],
         msg:"Maximum 32 characters allowed in last name"
   },
   min:{
        args:[4],
        msg:"Minimum 4 characters required in last name"
   }
Run Code Online (Sandbox Code Playgroud)

使用 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) {});
Run Code Online (Sandbox Code Playgroud)