koa-request-validator

koa request validator


Keywords
koa, validator, validation
License
ISC
Install
npm install koa-request-validator@2.0.0

Documentation

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
RequestValidator

Parameter

Kind: global class

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

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