mongoose-types-ext

0.2.0 • Public • Published

npm version Build Status Coverage Status

mongoose-types-ext

A package of mongoose types extensions.

Instalation

With npm

    npm install --save mongoose-types-ext

Runing tests

    gulp test

Usage

Just require the extensions before load your mongoose models:

var mongoose = require('mongoose');
require('mongoose-types-ext')(mongoose);
var YourSchemaDefinition = new mongooseSchema({
    someField: {
        type: String,
        maxLength: 10
    },
    /* (...) */
});
var YourModel = mongoose.model('YourModel', YourSchemaDefinition);

Supported extentions

String

  • exactLength: Sets a exact length string validator.

Custom error messages: You can also configure custom error messages and use the special token {EXACT_LENGTH} which will be replaced with the invalid value. Ex:

var rule = [4, 'The length of path `{PATH}` ({VALUE}) should be equal {EXACT_LENGTH}.'];
var schema = new Schema({ n: { type: String, exactLength: rule })
var M = mongoose.model('Measurement', schema);
var s= new M({ n: 'teste' });
s.validate(function (err) {
    console.log(String(err)); // ValidationError: The length of path `n` (test) should be equal 4.
})

Number

  • exclusivemin: Sets a minimum number validator not including the configurated value.

Custom error messages: You can also configure custom error messages and use the special token {EXCLUSIVE_MIN} which will be replaced with the invalid value. Ex:

var rule = [10, 'The value of path `{PATH}` ({VALUE}) should be greater than ({EXCLUSIVE_MIN}).'];
var schema = new Schema({ n: { type: Number, exclusivemin: rule })
var M = mongoose.model('Measurement', schema);
var s= new M({ n: 10 });
s.validate(function (err) {
    console.log(String(err)); // ValidationError: The value of path `n` (10) should be greater than 10.
});

How to contribute

I am very glad to see this project living with pull requests.

LICENSE

Copyright (c) 2015 Daniel Campos

Licensed under the MIT license.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.2.0
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.2.0
    1
  • 0.1.0
    1

Package Sidebar

Install

npm i mongoose-types-ext

Weekly Downloads

2

Version

0.2.0

License

MIT

Last publish

Collaborators

  • the-darc