Express Joi Middleware
Description
Implementation of Joi middleware for ExpressJS.
Features
- Joi validator middleware for ExpressJS
- Fully customizable (Your can give your validation callback, Joi options, allow the middleware to respond Bad Request, ...)
- Possible to give your 'Joi' module
How to use
Install
npm install --save express-joi-middleware
Example Usage
const express = ;const bodyParser = ;const expressJoiMiddleware = ; const app = ; app;const bodySchema = body: id: Joi ;const options = wantResponse: true;app; app;
API
Schema
A javascript object with these possible keys :
- body
- query
- params
- headers
In these keys, you must provide an object with a 'Joi' validation.
Options
A javascript object with these possible keys :
- joi
- joiOptions
- validationCallback
- wantResponse
- overrideBody
joi
This key is a possibility to pass a Joi instance if you want to pass an old (or new) Joi module version.
Default value : Library version.
joiOptions
This key is for all Joi options in validate.
Default value : {}.
wantResponse
This option is here if you want that the library send the response with a 400 as status code and the Joi Error details part as body. Otherwise, the library will 'next' the Joi Error. You can catch them like that :
app;
Default value : false (the library will 'next' error).
overrideBody
This option is here to override 'body' in request instead of creating a new key : 'validated'.
Default value : false (the library will create a 'validated' key in request).
validationCallback
This option is here to provide a way to change the 'validation' callback.
This option must be a function (a) that return another function (b).
The first function (a) will have these parameters :
- req (request)
- res (response)
- next (next function)
- options (options of the middleware)
The second function (b) will have these parameters :
- err (Joi Error)
- value (The validated value with any type conversions and other modifiers applied (the input is left unchanged). See the callback "value" here)
Thanks
- My wife BH to support me doing this
Author
- Oxyno-zeta (Havrileck Alexandre)
License
MIT (See in License.md)