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
有效