express-validate-schema
api
const validateSchema = require('express-validate-schema')
validateSchema([options])
options plain js object
- validationOptions an optional object, see
options
for joi.validate on joi repo - processHttpCallOnError false by default means you should use an error-handling middleware, in case you don't use it you should set this to true and when gets an error/exception on the validation
express-validate-schema
will process the http call immediate
each validation should be define before your route function (see examples) either the response
validation
route.get('/', validateSchema().query(query_schema), your_route_function)
validating query string
validateSchema([options]).query(some joi schema)
validating params
validateSchema([options]).params(some joi schema)
validating body
validateSchema([options]).body(some joi schema)
validating headers
validateSchema([options]).headers(some joi schema)
validating response
validateSchema([options]).response(some joi schema)
example
const express = require('express')
const validateSchema = require('express-validate-schema')
const app = express()
const router = express.Router()
router.get(
'/querystring',
validateSchema().query(someSchema),
(req, res) => { res.send(someBody) }
)
router.get(
'/params/:id',
validateSchema().params(someSchema),
(req, res) => { res.send(someBody) }
)
router.post(
'/body',
validateSchema().body(someSchema),
(req, res) => { res.send(someBody) }
)
router.get(
'/headers',
validateSchema().headers(headersSchema),
(req, res) => { res.send(someBody) }
)
router.put(
'/someresouce/:id',
validateSchema().params(someSchema),
validateSchema()
.body(Joi.object().keys({name: Joi.string().required()})),
validateSchema({ validationOptions: { allowUnknown: true } })
.headers(Joi.object().keys({hello: Joi.string().required()})),
(req, res) => { res.send('yay!') }
)
ISC License (ISC)