hexindai / Egg Valid
Licence: mit
👮Validation plugin for eggjs
Stars: ✭ 10
Programming Languages
javascript
184084 projects - #8 most used programming language
Labels
Projects that are alternatives of or similar to Egg Valid
egg-view-vue-ssr
Egg Vue Server Side Render (SSR) Plugin
Stars: ✭ 90 (+800%)
Mutual labels: egg, egg-plugin
egg-vue-webpack-dev
基于egg + vue2 + webpack2 的前后端集成开发编译构建插件
Stars: ✭ 29 (+190%)
Mutual labels: egg, egg-plugin
Egg Restfulapi
🏅 基于Egg.js 2.0 & {mongoose,jwt}RESTful API 模板,用于快速集成开发RESTful前后端分离的服务端。
Stars: ✭ 524 (+5140%)
Mutual labels: egg, egg-plugin
egg-parameters
Merge all parameters (ctx.params, ctx.request.query, ctx.request.body) into ctx.params like Rails application.
Stars: ✭ 24 (+140%)
Mutual labels: egg, egg-plugin
egg-y-validator
☯️ Egg Magic Validator (Egg 魔法验证工具)
Stars: ✭ 30 (+200%)
Mutual labels: egg, egg-plugin
Egg 24time
A Twitter-like news and social server for Egg. 微信小程序社区全栈解决方案
Stars: ✭ 493 (+4830%)
Mutual labels: egg, egg-plugin
egg-valid
A better Validation egg plugin based on @killara/validation
Install
$ npm i egg-valid -S
Usage
// config
exports.valid = {
enable: true,
package: 'egg-valid',
};
// controller
class HomeController extends Controller {
async index() {
const { app, ctx } = this;
const rule = { username: 'required|alpha' };
const errors = await app.validator.validate(ctx.request.body, rule)
// ...
}
}
Rule
@killara/validation
Derived from-
accepted
- string style:
field: 'accepted'
- object style:
field: { accepted: true }
- string style:
-
alpha
- string style:
field: 'alpha:6'
orfield: 'alpha:len=6'
- object style:
field: { alpha: { len: 6 } }
- string style:
-
confirmed
Rule
confirmed
: thefield
need to have the same value as the value that be filled byfield_confirmation
. We can changefield_confirmation
to any names withconfirmed:"custom"
- string style:
field: 'confirmed'
orfield: 'confirmed:"custom_field_name"'
- object style:
field: { confirmed: "custom_field_name" }
- string style:
-
date
- string style:
field: 'date'
- object style:
field: { date: true }
- string style:
-
datetime
- string style:
field: 'datetime'
- object style:
field: { datetime: true }
- string style:
-
time
- string style:
field: 'time'
- object style:
field: { time: true }
- string style:
-
email
- string style:
field: 'email:true'
- object style:
field: { email: true }
- string style:
-
in
-
array
style:field: [ 'basketball', 'football' ]
- object style:
field: { in: [ 'basketball', 'football' ] }
-
-
money
- string style:
field: 'money'
orfield: 'money:0'
field: 'money:2'
(default) - object style:
field: { money: { decimal: true } }
orfield: { money: { decimal: 0 } }
orfield: { money: { decimal: 2 } }
- string style:
-
numeric
- string style:
field: 'numeric:6'
orfield: 'numeric:len=6'
- object style:
field: { numeric: { len: 6 } }
- string style:
-
regexp
- string style:
field: 'regexp:"^123456$"'
- object style:
field: { regexp: new RegExp(/abc/, 'i') }
orfield: { regexp: /^[0-9a-zA-z]{8,16}$/ }
- string style:
-
required
- string style:
field: 'required'
orfield: 'required:true'
- object style:
field: { required: true }
- string style:
Custom rules
- phone (currently support China phone number only)
- string style:
field: 'required|phone'
- string style:
- password (length: 8-18, alphanumeric and &*;+$,?#[]%)
- captcha (phone auth code)
- string style:
field: 'captcha'
orfield: 'captcha:6'
- object style:
field: { captcha: { len: 6} }
- string style:
Messages
Customize validation messages
Via API
class HomeController extends Controller {
async index() {
const { app, ctx } = this;
const rule = { username: 'required|alpha:6' };
const messages = { 'username.alpha': '该字段应该为长度为6的字母串' };
const errors = await app.validator.validate(ctx.request.body, rule, messages);
if (errors) {
// ...
} else {
// ...
}
}
}
Via configuration
exports.valid = {
rules: {
custom: field => context => params => {
// We can get `app` and `ctx` from context
const { app, ctx, options } = context;
//... return a boolean
}
},
messages: {
custom: 'a custom message...',
},
};
API
validation.addRule(name: string, ruleFunc: (field: string) => (context: object) => (params: object) => bool)
- Add custom rule
validation.addMessage(name: string, message: string)
- Add custom message
License
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].