modeljs-validate
一个 modeljs 模型验证插件,基于 async-validator 验证规则,为 modeljs 提供简单方便的模型属性验证 API,让数据验证更简单!✌️
Install
npm install modeljs-validator --save
Usage
定义模型 User.js
modeljs-validator 基于 async-validator开发,更多验证规则相关配置请参考 async-validator
import Model from 'modeljs-core'
import Validator from 'modeljs-validator'
Model.use(Validator)
const User = Model.define('User', {
id: {
type: Number,
default: 0,
rules: { type: 'number', required: true, message: 'id 的类型必须是数字!' }
},
username: {
type: String,
default: '',
rules: [
{ type: 'string', required: true, message: '用户名不能为空!' },
{ pattern: /^[a-zA-Z0-9]{4,16}$/, message: '用户名只能为4-16位字母和数字组成!' }
]
},
password: {
type: String,
default: '',
rules: [
{ type: 'string', required: true, message: '密码不能为空!' },
{ min: 6, max: 18, message: '密码不能少于6位且不能大于18位!' }
]
},
sex: {
type: Number,
default: 0,
rules: { type: 'enum', enum: [0, 1, 2], required: true, message: '请选择性别!' }
}
})
常规验证
import User from './User'
var user = new User({
id: 'myid',
username: 'my',
password: '',
sex: 100
})
user.validate().then(() => {
console.log('验证成功')
}).catch((errors) => {
console.log('验证失败', errors)
let err = errors.shift()
if (err) alert(err.message)
})
选择性验证
比如在用户登录场景下只需要验证用户名和密码即可
user.validate(['username', 'password']).then(() => {
console.log('验证成功')
}).catch((errors) => {
console.log('验证失败', errors)
let err = errors.shift()
if (err) alert(err.message)
})
API
model.validate(filters)
如果对你有用,欢迎 star ^_^