Skip to content

wizardpisces/koa-struct-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

koa-struct-validation

koa2 api request params validation middleware (based on superstruct)

Support ( Post , Get )

How to Use

npm install --save koa-struct-validation

Usage Example

api.js

const validateApiSchema = require('koa-struct-validation');
const koaRouter = require('koa-router');
const koaBody = require('koa-body');
const API_SCHEMA_OBJ = require('./api_data_rules');
const item_api = require('../controller/item');
/*
*  /api/${path}
*/
const router = new koaRouter({
    prefix : '/api'
})
router.use(koaBody());

router.get('/item/list',validateApiSchema(API_SCHEMA_OBJ.getItemList), item_api.getItemList)

api_data_rules.js

const {superstruct} = require('superstruct')

function numberOnly(v){
    return /^[0-9]+$/.test(v)
}

const custom_struct = superstruct({
    types : {
        id_type : v => numberOnly(v),
    }
})

const API_SCHEMA_OBJ = {
    getItemList: custom_struct({
        project_id:'id_type',
    })
}

module.exports = API_SCHEMA_OBJ

controllers/item.js

const getItemList =  async function(ctx) {
    const query = ctx.request.query;
    let itemList = []

    ctx.body = {
        success: true,
        result: {
            list:itemList
        }
    }
}

module.exports = {
    getItemList
}

About

koa2 api request params validation middleware based on superstruct

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published