Validation
Validating your models
While JSData provides Model Lifecycle Hooks like validate, it does not do validation for you, but allows you to use whatever validation library you'd like.
Example
This example uses Validate.js.
npm install --save js-data validate.js or bower install --save js-data validate
var store = new JSData.DS();
validate.validators.isString = function(value, options, key, attributes) {
return validate.isString(value) ? null : key + ' must be a string!';
};
var productSchema = {
id: {
numericality: true
},
name: {
presence: true,
isString: true
},
price: {
numericality: true
}
};
var Product = store.defineResource({
name: 'product',
idAttribute: '_id',
validate: function (Product, product, cb) {
var err = validate(product, productSchema);
if (err) {
cb(err);
} else {
// pass the product along
cb(null, product);
}
}
});
Need Help?
Want more examples or have a question? Ask on the Slack channel or post on the mailing list then we'll get your question answered and probably update this wiki.
Updated less than a minute ago
