express-verifier

    1.0.0 • Public • Published

    npm npm Dependency Status devDependency Status Build Status Coverage Status

    express-verifier

    Gitter

    body, params, query verifier middleware for express framework (nodejs)

    all rules see https://www.npmjs.com/package/node-verifier

    schema declaration see https://www.npmjs.com/package/node-verifier-schema

    var express = require('express');
    var bodyParser = require('body-parser');
    var verifier = require('express-verifier');
     
    var app = express();
     
    var verify = verifier({
        cwd: __dirname + '/specs/'
    });
     
    app.get('/', verify.query(function (required, optional) {
        required('sortby', ['type string', {'contains': ['key', 'value']}]);
        optional('orderby', ['type string', {'contains': ['ASC', 'DESC']}]);
    }), function (req, res) {
        res.send({
            done: {
                body: req.body,
                query: req.query,
                params: req.params,
                headers: req.headers
            }
        });
    });
     
    app.post('/(:id)/', verify('get-user.yml'), resource);
     

    define verifier by yaml get-user.yml:

    ---
    schema:
        body:
            first_name:
                - type string
                - min_length 3
                - max_length 20
            last_name:
                - type string
                - min_length 3
                - max_length 20
            middle_name?:
                - type string
                - min_length 3
                - max_length 20
        params:
            id:
                type: string
                format: ^\d+$
        query:
            orderby?:
                type: string
                contains:
                    - ASC
                    - DESC

    verifierConstructor

    var verifierConstructor = require('express-verifier');
     
    var verifier = verifierConstructor(options);

    options

    options.cwd

    String - root path of yaml specs

    options.preparePath( path )

    function - prepare yaml-loader path. must return path string

    verifier

    Set by schema. Schema must have fields "query", "params", "body", "headers"

    var verifierConstructor = require('express-verifier');
    var verifier = verifierConstructor();
    var Schema = verifierConstructor.Schema;
     
    var schema = Schema().object(function () {
        this.field('params').object(function () {
            this.required('id', [ 'format ^\\d+$' ]);
        });
     
        this.field('body').object(function (required, optional) {
            required('sortby',  ['type string', {'contains': ['key', 'value']}]);
         optional('orderby', ['type string', {'contains': ['ASC', 'DESC']}]);
        });
    });
     
    app.get('/(:id)/', verifier(schema), function () {
        // ...
    });
    var verifierConstructor = require('express-verifier');
    var verifier = verifierConstructor();
    var Schema = verifierConstructor.Schema;
     
    var schemaParams = new Schema().object(function (required) {
        required('id', [ 'format ^\\d+$' ]);
    });
     
    var schemaBody = new Schema().object(function (required, optional) {
        required('sortby',  ['type string', {'contains': ['key', 'value']}]);
        optional('orderby', ['type string', {'contains': ['ASC', 'DESC']}]);
    });
     
    app.get('/(:id)/', verifier.params(schemaParams), verifier.body(schemaBody), verifier.headers('get-user-headers.yaml'), function () {
        // ...
    });

    Add new custom rules

    see https://github.com/aliaksandr-pasynkau/node-verifier for more information

    var Rule = require('express-verifier').Schema.Verifier.Rule;
     
    var HasNotEdgeWhitespaces = Rule.extend({
        check: function (value, params, done) {
            if (typeof value === 'string') {
                return new this.ValidationError('type', 'string');
            }
     
            return value === value.trim();
        }
    });
     
    Rule.add('has_not_edge_whitespaces', HasNotEdgeWhitespaces);

    Install

    npm i express-verifier

    DownloadsWeekly Downloads

    24

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar