123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*!
- * Module requirements
- */
- var MongooseError = require('../error.js');
- /**
- * Document Validation Error
- *
- * @api private
- * @param {Document} instance
- * @inherits MongooseError
- */
- function ValidationError(instance) {
- this.errors = {};
- if (instance && instance.constructor.name === 'model') {
- MongooseError.call(this, instance.constructor.modelName + ' validation failed');
- } else {
- MongooseError.call(this, 'Validation failed');
- }
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this);
- } else {
- this.stack = new Error().stack;
- }
- this.name = 'ValidationError';
- if (instance) {
- instance.errors = this.errors;
- }
- }
- /*!
- * Inherits from MongooseError.
- */
- ValidationError.prototype = Object.create(MongooseError.prototype);
- ValidationError.prototype.constructor = MongooseError;
- /**
- * Console.log helper
- */
- ValidationError.prototype.toString = function() {
- var ret = this.name + ': ';
- var msgs = [];
- Object.keys(this.errors || {}).forEach(function(key) {
- if (this === this.errors[key]) {
- return;
- }
- msgs.push(String(this.errors[key]));
- }, this);
- return ret + msgs.join(', ');
- };
- /*!
- * Module exports
- */
- module.exports = exports = ValidationError;
|