koa-ajv-parser
v1.1.1
Published
A koa middleware for parameter validation
Downloads
1
Maintainers
Readme
koa-ajv-parser
This module provides a middleware based on ajv that validates the parameters of the http request and saves the result to ctx.state.params. The middleware will throw an error when the validation fails, so be sure to intercept and handle the errors thrown when using this middleware.
中文说明
Install
npm i koa-ajv-parser
Usage
'use strict';
const ajvParser = require('koa-ajv-parser');
const rule = {
params: { // root property, set all properties under it that do not contain default values and optional to be required
id: { type: 'integer', minimum: 1 },
name: 'string', // same as name:{ type:'string' }
phone: { type: 'string', default: '110' },
ext: {
type: 'object',
properties: {
id: { type: 'integer' },
name: { type: 'string' },
},
required: [ 'id', 'name' ],
optional: true, // not required
},
},
// getParams:(ctx, properties)=>{ return json;}
}
router.get('/yourpath',ajvParser(rule), routerHandler);
//http://yourpage/yourpath?id=2&name=sachiko&ext={%22id%22%3A1,%22name%22%3A%22momoka%22}
//ctx.state.params = {id:2, name:'sachiko', phone:'110', ext:{id:1, name:'momoka'}}
Precautions
- Only under the params object, properties can be abbreviated in the form name: 'type'
- Only under the params object, perform JSON.parse on the parameters of type object and array and then verify
- Only under the params object, all properties are set to required by default unless the default value is set or optional: true
- By default, the corresponding values are obtained in the order of ctx.request.body, ctx.request.query, ctx.params, or you can change this rule by configuring the getParams function. See getCtxParams for details.
Test
npm test
Author
985ch
- Github: @985ch
License
Copyright © 2019 985ch. This project is MIT licensed. This README was translate by google