Validate object properties in javascript.
var schema = require('validate');
var user = schema({
name: {
type: 'string',
required: true,
message: 'Name is required.'
},
email: {
type: 'string',
required: true,
match: /+\@.+\..+/,
message: 'Email must be valid.'
},
address: {
street: {
type: 'string',
required: true,
message: 'Street is required.'
},
city: {
type: 'string',
required: true,
message: 'City is required.'
}
}
});
var errors = user.validate(obj);
Each error has a .path
, describing the full path of the property that failed validation,
and a .message
property.
errors[0].path //=> 'address.street'
errors[0].message //=> 'Street is required.'
You can also add paths to a schema by using the chainable API
user
.path('username')
.type('string')
.required()
.match(/[a-z]{2,16}/)
.message('Username must be 2-16 chars.');
user
.path('address.zip')
.type('string')
.required()
.match(/[0-9]+/)
.message('Zip is required.');
Values can be automatically typecasted before validation.
To enable typecasting, pass an options object to the schema constructor with typecast
set to true
.
var user = schema({ name: 'string', age: 'number' }, { typecast: true });
You can override this setting by passing options to .validate()
user.validate(obj, { typecast: false });
By default, all values not defined in the schema will be stripped from the object.
Set .strip = false
on the options object to disable this behavior.
Creates a new Schema
with the given paths.
Add path to schema with optional rules. Returns a Property
.
Validate given object. Returns an array of errors.
Validate given object and throw if the validation fails.
Use the given validation function with and optional error message.
fn
should accept a value and return true
if the value is considered valid.
Property should be of type name
.
Property is required.
Proprety should match given regexp
.
Validate each value in array against given function fn
.
Set default error message for property.
MIT