This package has been deprecated

Author message:

Please replace fpl-mongoose-validate with mf-mongoose-validation.

fpl-mongoose-validate

0.0.4 • Public • Published

fpl-mongoose-validate

Validate extended data types, field lengths, arrays, optional values, and the like.

Installation

npm install --save fpl-mongoose-validate

New Version & Owner

Ownership has been transferred to MEAN Factory and is available under their mf-mongoose-validation package.

No updates will be made to this project. Please replace all instances with the new version from MEAN Factory.

Features

Additional validation function for primitive data types in Mongoose are:

Strings

Parameter Type Explanation
validChars String Array of allowable characters in value
isCaseSensitive Boolean Determines if the validChars are case sensitive
minLength Number Minimum length of value if a value is supplied and after it is optionally trimmed.
maxLength Number Maximum length of value if a value is supplied and after it is optionally trimmed.

Arrays (Subdocuments)

Parameter Type Explanation
minQty Number Minimum item count after any soft deletes (see fpl-mongoose-softdelete)
maxQty Number Maximum item count after any soft deletes (see fpl-mongoose-softdelete)

Example #1: Primitives

Note the uppercase L in Length used in the plugin. The built-in Mongoose validator is minlength or maxlength with all lowercase letters.

Schema

var mongoose    = require('mongoose'),
    fplValidate = require('fpl-mongoose-validate'),
	enums       = require('../enums');

var ALPHA      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var DIGITS     = '0123456789';
var NAME_CHARS = ALPHA + ' ';

var personSchema = mongoose.Schema({

   ssn        : {
        type            : String,
        validChars      : DIGITS,
        minLength       : 9,              // plugin version to leverage pleasant error messages
        maxLength       : 9,              // plugin version to leverage pleasant error messages
        trim            : true,
        required        : true,
        },
   firstName  : {
        type            : String,
        validChars      : NAME_CHARS,
        isCaseSensitive : false,
        trim            : true,
        minLength       : 1,               // will only apply if a value is supplied
        maxLength       : 50               // will only apply if a value is supplied
        }
   lastName   : {
        type            : String,
        validChars      : NAME_CHARS,
        isCaseSensitive : false,           // do not consider case when comparing valid characters
        minLength       : 2,
        maxLength       : 50
        },
});
personSchema.plugin(fplValidate);

module.exports = mongoose.model('Person', personSchema);

Example #2: Arrays of Subdocuments

Schema

var personSchema = mongoose.Schema({
    name: { type: String }
});

var familySchema = mongoose.Schema({
    surname : { type: String },
    members : {
        type   : [ personSchema ],
        minQty : 1,
        maxQty : 100
    }
});

familySchema.plugin(fplValidate);

module.exports = mongoose.model('Family', familySchema.plugin);

Related Projects

The following projects have been designed specifically to work with each other:

fpl-mongoose-audittrail###

Track who and when documents are created and updated without complex programming. Compare and contract different versions of each document.

fpl-mongoose-dto

Convert to/from JSON DTO while applying optional level-based hiding.

fpl-mongoose-softdelete

Increase data integrity by retaining historical data and preventing data from being permanently deleted. Each delete operation causes the document to be marked as "deleted" and subsequently hidden from result sets.

fpl-mongoose-validate (this plugin)###

Provides additional validation for extended data types, field lengths, arrays, and other useful features.

Contact Information

MEAN Factory
support@meanfactory.com
www.MEANFactory.com

Original Author

Fred Lackey
fred.lackey@gmail.com
www.fredlackey.com

Package Sidebar

Install

npm i fpl-mongoose-validate

Weekly Downloads

0

Version

0.0.4

License

MIT

Last publish

Collaborators

  • fredlackey