joi-express
v1.0.3
Published
Simple validation middleware for express using the joi validation suite.
Downloads
15
Maintainers
Readme
joi-express
Simple validation middleware for express using the Joi validation suite.
Installation
npm install joi-express
Dependencies
npm install joi
Usage
var Express = require('express');
var BodyParser = require('body-parser');
var ExpressJoi = require('joi-express');
var Joi = require('joi');
var app = Express();
app.use(BodyParser.json());
// Use Joi to create your schemas
var querySchema = {
query: {
limit: Joi.number().default(10).min(10).max(100),
offset: Joi.number().default(10).min(10).max(100)
},
headers: {
authorization: Joi.string().required()
}
};
// Attach the validator like other middleware
app.get('/', expressJoi(querySchema), function (req, res, next) {
// do something with req.query.limit & req.query.offset
...
});
// Use Joi to create your schemas
var bodySchema = {
body: {
name: Joi.string().required()
}
};
// Attach the validator like other middleware
app.post('/', expressJoi(bodySchema), function (req, res, next) {
// do something with req.body;
...
});
// Example error handler
app.use(function (err, req, res, next) {
if (err.isBoom) {
return res.status(err.output.statusCode).json(err.output.payload);
}
});
app.listen(8080);
If a validation error occurs it will either be handled by your express error handling middleware or thrown.
Joi
Since this middleware is just a wrapper around the Joi validate
method all the options
are supported.
Running Tests
npm install
npm test