@7c/autovalidate 中文文档教程
autovalidate
用于输入验证的小型但经过良好测试的库
Installation
<代码> npm i @7c/autovalidate --save
Features
- custom validator
- custom types
- required / optional keys
- multiple type support
- length support for string,arrays(items),object(keycount)
- min,max support for number
Types
Custom Types
ip4,ip6,url,email
Basic Types
string,boolean,number,array,object
validateParameters(inputObject,configuration)
此函数采用输入对象,例如 req.body
或 req.params
或任何 Javascript 哈希对象。 如果配置麻烦,该函数会抛出异常。 这将避免您作为开发人员犯错误。 由于配置是不变的,您不希望在生产中出现异常。
const { validateParameters } = require('@7c/autovalidate')
let configuration = [
{ key: 'token', type: ['string'] },
{ key: 'ip', type: ['ip4'] },
{ key: 'from', type: ['email'] },
{
key: 'PayerID', type: ['string'],
length: [3, 64],
required: false,
default: 'NONE'
},
{
key: 'uuid', type: ['string'],
required: true,
validator: (v) => validUUID(v)
},
{
key: 'optional', type: ['string', 'boolean'],
required: false,
default: false
},
{
key: 'theid', type: ['number'],
min: 1,
required: false,
default: false
}
]
let response = validateParameters({
token: 'validToken',
ip: '1.2.3.4',
email: 'test@gmail.com'
}, configuration )
if (response.validated) {
console.log(`sucess`)
} else {
console.log(`validation has failed:`,response.issues)
}
response
响应是一个具有 3 个属性的结构:validated:bool
,issues:[]
,values:{}
validation failed
如果验证失败,那么您会将 validated
设置为 false,issues
数组将包含验证失败原因的解释,并且 values
对象将为空
{
validated: false,
issues: [ "'from' is required", "'uuid' is required" ],
values: {}
}
validation succeed
然后 validated< /code> 将为真,问题数组将为空并且
values
对象包含相应的值
autovalidate
small but well-tested library for input validation
Installation
npm i @7c/autovalidate --save
Features
- custom validator
- custom types
- required / optional keys
- multiple type support
- length support for string,arrays(items),object(keycount)
- min,max support for number
Types
Custom Types
ip4,ip6,url,email
Basic Types
string,boolean,number,array,object
validateParameters(inputObject,configuration)
this function takes an input object such as req.body
or req.params
or any Javascript Hash Object. This function throws an exception in case the configuration is troublesome. This will avoid you as developer from mistakes. Since the configuration is constant, you do not expect an exception at production.
const { validateParameters } = require('@7c/autovalidate')
let configuration = [
{ key: 'token', type: ['string'] },
{ key: 'ip', type: ['ip4'] },
{ key: 'from', type: ['email'] },
{
key: 'PayerID', type: ['string'],
length: [3, 64],
required: false,
default: 'NONE'
},
{
key: 'uuid', type: ['string'],
required: true,
validator: (v) => validUUID(v)
},
{
key: 'optional', type: ['string', 'boolean'],
required: false,
default: false
},
{
key: 'theid', type: ['number'],
min: 1,
required: false,
default: false
}
]
let response = validateParameters({
token: 'validToken',
ip: '1.2.3.4',
email: 'test@gmail.com'
}, configuration )
if (response.validated) {
console.log(`sucess`)
} else {
console.log(`validation has failed:`,response.issues)
}
response
the response is a structure which has 3 properties: validated:bool
,issues:[]
,values:{}
validation failed
if validation has failed then you will have validated
set to false, issues
array will contain explanation why the validation has failed and values
object will be empty
{
validated: false,
issues: [ "'from' is required", "'uuid' is required" ],
values: {}
}
validation succeed
then validated
will be true, issues array will be empty and values
object contains corresponding values