object-validator
Small wrapper to validate JSON objects with the Validator library. With some small added validations.
Installation
$ npm install object-validator-js --save
Using
validator( OBJECT, SCHEMA )
returns Array of errors (empty or no array if no errors)
var request = require('request');
var validator = require('object-validator');
request({ url: '/user' }, function (err, res, body) {
validator(data, {
_id: 'isMongoId',
active: true,
enabled: 'isBoolean',
contact: {
first_name: 'isString',
last_name: 'isString',
nick_name: 'isString',
email: 'isEmail',
phone: 'isString'
},
auth: {
login_attempts: 'isInt',
username: 'isString',
password: 'isNull',
token: 'isString'
},
preferences: { state: { last_emailed: 'isDate' } },
timestamps: {
created: 'isDate',
killed: '~isDate'
}
});
});
Additional Validations
isString
in schema - Returns true is value is typeof
string
isBoolean
in Schema - Returns true is value is typeof
boolean
isNumber
in Schema - Returns true is value is typeof
number
isArray
in Schema - Returns true is value Array.isArray
isFunction
in Schema - Returns true is value is typeof
function
NonString
in schema - Checks value with === comparison;!
before validator method
will give the negative result~
before validator method
validates method if data present (optional)
Errors are all bundled into single array
validator({ path: { to: { value: '23' } } }, { "path.to.value": ['isInt', {min: 2, max: 10}] })
// Error response is array (if no errors it returns true)
[
{
path: 'path.to.value',
validator: [ 'isInt', [Object] ],
value: '23',
message: 'path.to.value failed ["isInt",{"min":2,"max":10}] validator test.'
}
]