Route validation for Express using Joi
This custom middleware is for those who prefer to use Express but want to use the Joi validation library to validate the query, params, and body of requests.
Install with NPM:
npm install express-joi-validate --save
Or with Yarn:
yarn add express-joi-validate
Without route validation, an endpoint may look something like this:
To implement route validation, simply call the provided validation function with the desired schema that uses Joi:
const Joi = ;const validate = ;const contactSchema =params:id: Joi;app;
In TypeScript, it would look like this:
;;;app.get'/contacts/:id', validatecontactSchema, contactsHandler;
Note: for the above, the type
SchemaMap is inferred and not required.
For more information about this library, see the blog post Express route param validation (Node.js).
Test the 3 different types of validations using the tests and mock server:
Generate TypeScript definitions:
npm run tsc