amn-express-validate v0.0.5
AMN Express Validate
DO NOT TRUST A CLIENT!
Amn Express Validate
provides a simple and flexible way of validation client's input.
It is a simple wrapper around joi
validator and convert it into connect middleware. It helps easily build validation step into express middleware chain.
In order to deliver meaningful error message back to client, Amn Express Validate leverage another amn
package Amn Error.
AMN leverage schema validation for client's input through joi, hence, it's your responsibility to install the package before use
validate
. Please, follow peer dependency message at installation.
Get started
Installation
npm i amn-express-validate
Examples
The middleware validate
is HOC. That allows to add extra control over the way the middleware work. It consumes two parameters,
- schema - an ObjectSchema which defines validation rules.
- source - an optional parameter 'body' or 'query' or 'params' to define which client input to validate. In case none provided, the middleware picks all input from 'body' and 'query' and 'params'.
const Joi = require('joi');
const validate = require('amn-express-validate');
// validate req.body
const userSignUp = Joi.object().keys({
email: Joi.string().email().required(),
password: Joi.string().min(4).max(20).required(),
});
router.post('/user/signup',
, validate(userSignUp, 'body')
, singUpMiddleware
);
// validate req.params in url string
const postId = Joi.object().keys({
pid: Joi.string().pattern(/^[0-9a-fA-F]{24}$/).required()
});
const postBody = Joi.object().keys({
title: Joi.string().required(),
text: Joi.string().optional()
});
router.put('/post/:pid/',
, validate(postId, 'params')
, postUpdateMiddleware
);
// you can call validate multiply times
router.put('/post/:pid/',
, validate(postId, 'params') // validate params
, validate(postBody, 'body') // validate body
, postUpdateMiddleware
);
Error
Amn Express Validate leverage another amn
package Amn Error to report an error back to client.
Errors have the following response
- http status
400
; - code
BAD_REQUEST
; - message is a error description generated by
joi
.