Skip to content

Fluent, functional, and extendable validation for Koa 2. Built with validator behind the scenes.

Notifications You must be signed in to change notification settings

technicallyjosh/koa-fluent-validation

Repository files navigation

koa-fluent-validation

npm Travis (.org) David

Fluent, functional, and extendable validation for Koa 2 body, params, and query. Built on validator for base validations and filters.

Installation

$ npm i koa-fluent-validation

Requirements

  • NodeJS >= 7.6
  • For validating parameters, koa-router's implementation is used with ctx.params.

Usage

Simple App Example

const Koa = require('koa');
const bodyparser = require('koa-bodyparser');
const { validation, v, f } = require('koa-fluent-validation');

const app = new Koa();

app.use(bodyparser());
app.use(validation());

app.use(async (ctx, next) => {
  try {
    await next();
  } catch (e) {
    if (e.status === 422) {
      ctx.body = ctx.validationErrors;
      return;
    }

    // ... some other handling here etc
  }
});

// simple post route
app.use(async (ctx, next) => {
  if (ctx.method !== 'POST') {
    ctx.throw(404);
    return;
  }

  ctx.validateBody(
    {
      firstName: v()
        .required()
        .string(),
      lastName: v()
        .required()
        .string(),
    },
    {
      firstName: f().trim(),
      lastName: f().trim(),
    },
  );

  // your code here
});

app.listen(8080);

Documentation

For documentation see the wiki!

TODO

  • [] Filter Tests

About

Fluent, functional, and extendable validation for Koa 2. Built with validator behind the scenes.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •