2017-06-16 94 views
1

我試圖通過模型驗證,驗證minmax驗證Sequelize.js最小和最大長度驗證器不工作

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

你需要傳遞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) {}); 
+0

感謝您的答覆,但它不是工作 – Jabaa

+0

您可以使用ARGS爲[4,32] –

+0

LEN驗證我也試過這些,但沒有工作 – Jabaa