mongoose-avalidator
A mongoose plugin utilizing node-validator. Unlike some similar packages, it:
- is a plugin for mongoose.Schema
- inherits node-validator's API convention
- supports asynchronous validation
- supports sanitize (Filter)
- can run validations in parallel or in series
Quick Examples
Config schema to use mongoose-avalidator
var avalidator = ;var props = foo: type: String {...} ; var schema = mongoose;
or
var avalidator = ;var schema = mongoose;
Avaliable Options
Option | Description | Default |
---|---|---|
validate | Define validation functions | undefined |
parallel | Whether run validation functions in parallel | true |
node-validator.
UseBasiclly because every validation function is mapped to a document property, the first argument to 'check' and 'sanitize' is omitted.
node-validator | mongoose-avalidator |
---|---|
check('string', 'Required!').notNull() | this.check('Required!').notNull() |
var result = sanitize('string').trim() | this.str = this.sanitize.trim() |
You can get/set current mapped property's value by using this.str. Current model can be accessed by using this.model.
Synchronous validation function example
Function has no argument.
{ //sanitize thisstr = thissanitize; //validate this ;}
Asynchronous validation function example
Function has one argument as callback.
{ //sanitize thisstr = thissanitize; //validate this ; //asynchronous validation logic ;}
Property dependency example
The following example validates 'emailprovider' after 'email' been sanitized. By using parallel: false validations run in series.
var schema = mongoose ;