koa-request-validator
v2.0.0
Published
koa request validator
Downloads
2
Readme
koa-request-validator
Request validator for koa
Installation
npm install koa-request-validator
Usage
const Koa = require('koa')
const RequestValidator=require('koa-request-validator').RequestValidator
let app = new Koa()
let rv = new RequestValidator()
rv.parameter('param').required()
.validate(val => !!val, 'error message 1') // synchronous validation rule
.validate(async (val, ctx) => {
return await ctx.someAsyncFunction(val)
}, 'error message 2') // async validation rule with async/await
.validate(val => Promise.resolve(val), 'error message 3') // async validation rule error with promise
app.use(rv.middleware(), async ctx =>{
// will respond with 422 and an error object automatically for a invalid request
// only valid request will reach here
})
Classes
Parameter
Kind: global class
- Parameter
- new Parameter(name, [location])
- instance
- inner
- ~validatorCallback ⇒ Boolean | Promise.<Boolean>
new Parameter(name, [location])
A parameter to validate
| Param | Type | Default | Description | | --- | --- | --- | --- | | name | String | | Name of the parameter. Can use dotted names. | | [location] | String | body | Location of the parameter |
parameter.required([message]) ⇒ Parameter
Set this parameter required
Kind: instance method of Parameter
Returns: Parameter - - Returns the parameter object itself so that the it can be chained
| Param | Type | Description | | --- | --- | --- | | [message] | String | Error message if this parameter is missing in the request |
parameter.optional() ⇒ Parameter
Set this parameter optional
Kind: instance method of Parameter
Returns: Parameter - - Returns the parameter object itself so that the it can be chained
parameter.validate(validator, errorMessage) ⇒ Parameter
Add a validation rule
Kind: instance method of Parameter
Returns: Parameter - - Returns the parameter object itself so that the it can be chained
| Param | Type | Description | | --- | --- | --- | | validator | validatorCallback | A function to validate the parameter | | errorMessage | String | The error message to show if invalid. |
async parameter.getErrorMessage(ctx) ⇒ String|undefined
Check if this parameter is valid
Kind: instance method of Parameter
Returns: String|undefined - - Returns an error message if invalid or undefined if valid.
| Param | Type | Description | | --- | --- | --- | | ctx | Context | The koa context object |
Parameter~validatorCallback ⇒ Boolean | Promise.<Boolean>
Validator Function
Kind: inner typedef of Parameter
Returns: Boolean | Promise.<Boolean> - - True for valid, false for invalid.
| Param | Type | Description | | --- | --- | --- | | val | * | The value to validate | | ctx | Context | The koa context object
RequestValidator
Kind: global class
- RequestValidator
- new RequestValidator()
- .parameter(name, [location]) ⇒ Parameter
- .getError(ctx) ⇒ Promise.<Object>
- .middleware() ⇒ function
new RequestValidator()
RequestValidator contains all the parameters to be validated
requestValidator.parameter(name, [location]) ⇒ Parameter
Get or create a parameter
Kind: instance method of RequestValidator
| Param | Type | Default | Description | | --- | --- | --- | --- | | name | String | | Name of the parameter | | [location] | String | body | Location of the parameter |
async requestValidator.getError(ctx) ⇒ Object
Check if the request in the context is valid
Kind: instance method of RequestValidator
Returns: Object - - The error object
| Param | Type | Description | | --- | --- | --- | | ctx | Context | The koa context object |
requestValidator.middleware() ⇒ function
Get the koa middleware to use
Kind: instance method of RequestValidator