UNPKG

json-valid

Version:

A json model validate kit for NodeJS

145 lines (122 loc) 2.81 kB
var Validator = require('../validate'); var data0 = { user: "ricky", age: 17, vip: false, optional_field0: 'option0', optional_field1: 'not_a_email' }; var data1 = { user: "rickylonglonglonglonglonglonglonglonglonglong", age: 25, phone: "18888888880", vip: true, optional_field1: 'ricky.tan.xin@gmail.com' }; var model0 = { user: 'string:5,20', phone: 'string?:1\\d{10}', age: 'number:[10,18)', vip: 'bool', optional_field0: 'string?', optional_field1: 'email?' }; var valid0 = new Validator(model0); console.log(valid0.validate(data0)); console.log(valid0.validate(data1)); var data2 = { user: { username: 'Ricky', age: 25, avatar: 'http://www.google.com/doodle.png', slogan: "Talk is cheap, show me your code!" }, comments: [{ comment_id: '2323', content: 'yes, i have', vote: 32 }, { comment_id: 2324, content: 'yes, i have', vote: -1 }] }; var model1 = { user: 'User', comments: 'array:Comment' }; Validator.define('Comment', { comment_id: 'string', content: 'string', vote: 'number:[,9)' }); Validator.define('User', { username: 'string', avatar: 'url', age: 'number', slogan: 'string?' }); var valid1 = new Validator(model1); console.log(valid1.validate(data2)); var data3 = { post_id: 'abc', created_at: '2015-08-27T16:10:00.000Z', updated_at: 'wefaw', author: { user: 'Ricky', avatar: 'http://www.google.com/doodle.png' }, comments: [], action: '{\"test\":20}' }; var model2 = { post_id: 'string:0,3', created_at: 'date', updated_at: 'date', author: { user: 'string', avatar: 'url', age: 'number?' }, comments: 'array', action: 'json' }; var valid2 = new Validator(model2); console.log(valid2.validate(data3)); Validator.define('Post', model2); console.log(new Validator('Post').validate(data3)); /* Validator.define('User', { username: 'string', avatar: 'url', is_vip: 'bool' }); Validator.define('Comment', { comment_id: 'number', content: 'string', author: 'User' }); var model = { artical_id: 'number', content: 'string', creator: 'User', comments: 'array:Comment' }; var validator = new Validator(model); var errors = validator.validate({ artical_id: 1234, content: "This is a article", creator: { username: 'Ricky', avatar: 'http://www.google.com/doodle.png', is_vip: 1 // This is a error! }, comments: [{ comment_id: '2344', // This is a error! author: { username: 'Hi' } }] }); console.log(errors); */