express-joi-validator

Express Middleware for Walmart's Joi Validator

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
express-joi-validator
2.0.15 years ago9 years agoMinified + gzip package size for express-joi-validator in KB

Readme

express-joi-validator
Build Status
Simple validation middleware for express using the Joi validation suite.

Installation

npm install express-joi-validator

Dependencies

npm install joi

Usage

var Express = require('express');
var BodyParser = require('body-parser');
var ExpressJoi = require('express-joi-validator');
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)
    }
};

// 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