JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://d1l4stvdmqmdzl.cloudfront.net/4.0.0-rc2/mongoose.min.js"></script>
<div id="output">
</div>
JavaScript
var print = function(msg) {
document.getElementById('output').insertAdjacentHTML('beforeend', msg + '<br>');
};
var primeNumbersSchema = new mongoose.Schema({
primes: [{
type: Number,
min: 2,
validate: {
validator: function(v) {
for (var i = 2; i <= Math.sqrt(v); ++i) {
if (v % i === 0) {
return false;
}
}
return true;
},
msg: '{VALUE} is not prime!'
}
}]
});
var doc = new mongoose.Document({ primes: [2] }, primeNumbersSchema);
/*
* Output looks like:
* No validation error: null
* Error: ValidationError: 4 is not prime!
*/
doc.validate(function(err) {
print('No validation error: ' + err);
doc.primes.push(4);
doc.validate(function(err) {
print('Error: ' + err);
});
});