Skip to content

Latest commit

 

History

History

koa-joi-middleware

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

@salsita/koa-joi-middleware

NPM version Downloads Licence Dependency Status devDependency Status

Middleware used on routes to validate input.

Example:

const joi = require("@hapi/joi");
const Router = require("koa-router");
const joiMiddleware = require("@salsita/koa-joi-middleware");

const router = new Router();

const paramsSchema = joi.object().keys({
  id: joi.number().integer().positive().required()
}).required();
const bodySchema = joi.object().keys({
  name: joi.string().max(1024).required(),
  email: joi.string().email().max(1024).required()
}).required();

router.patch(
  '/:id',
  joiMiddleware([
    { get: ctx => ctx.params, schema: paramsSchema },
    { get: ctx => ctx.request.body, schema: bodySchema },
  ],
  async ctx => { /* perform stuff */ }
);