custom-validator
v0.0.1
Published
Custom validator for validator.js
Downloads
6
Readme
Custom Validator
Friendly object validation using https://github.com/chriso/validator.js. Its extended for async validation.
Requires:
- https://github.com/chriso/validator.js
- http://underscorejs.org/
- https://github.com/caolan/async
Instalation
Node
npm install custom-validator
Browser
Only manual at the moment, copy files of dist foolder into your project.
Usage
TODO: Explain validator a bit more.
Here is an example that runs on node.js.On browser, you have CustomValidator global object with the same methods as the required object in node.js
For more details, you can look test/test.js file.
var validateMultiple = require('custom-validator').validateMultiple;
// Populate array of validators
var validators = [
{
message: 'Alphanumeric',
validator: 'isAlphanumeric',
attr: 'username'
},
{
message: 'Must be between 8 and 12 length',
validator: 'isLength',
args: [8, 12],
attr: 'username'
},
{
message: 'Valid email',
validator: 'isEmail',
attr: 'email'
},
{
message: 'Unique email',
attr: 'email',
validator: function(email, next){
// Well... you can make a real async call here, like an AJAX request or Mongo query
if(email == '[email protected]')
next(false);
else
next(true);
}
}
]
// Create a validator object
var validator = validateMultiple(validators);
// Create a callback that will be executed after validation
var callback = function(isValid, status){
// Check if the object is valid
if(isValid == true){
console.log('The user is valid!');
} else {
console.log('Invalid user :(')
}
// Check the status for each attribute
console.log(status.username.valid);
console.log(status.email.valid);
// Check the status of each validation
console.log(status.username[0].message); // Alphanumeric
console.log(status.username[0].valid);
console.log(status.username[1].message); // Must be between 8 and 12 length
console.log(status.username[1].valid);
}
// Validate
validator({ username: 'abdc1234', email: '[email protected]' }, callback); // valid
validator({ username: 'abdc1234', email: '[email protected]' }, callback); // fails on email