spur-mongoosemanager v0.0.4
A mongoose manager wrapper that provides some common utilities and extends it to support promises.
About the Spur Framework
The Spur Framework is a collection of commonly used Node.JS libraries used to create common application types with shared libraries.
Visit NPMJS.org for a full list of Spur Framework libraries >>
Quick start
Installing
$ npm install spur-mongoosemanager --saveUsage
src/injector.js
spur                = require "spur-ioc"
spurCommon          = require"spur-common"
spurMongoosemanager = require "spur-mongoosemanager"
module.exports = ()->
  ioc = spur.create("demo")
  # register folders in your project to be autoinjected
  ioc.registerFolders __dirname, [
    "demo"
  ]
  ioc.merge(spurCommon())
  ioc.merge(spurMongoosemanager())
  iocdemo/DinerModel.coffee
Definition of a MongoDB schemea for a diner.
module.exports = (MongooseSchema, MongooseModel, config, MongooseManager, Moment)->
  new class DinerModel extends MongooseModel
    constructor:->
      super
      @_model = @createModel()
    createModel:()->
      # Define a schema
      schema = new MongooseSchema {
        _id:
          type: Number
          required: true
          unique: true
          index: true
        firstName:
          type: String
          trim: true
        lastName:
          type: String
          trim: true
      }
      schema.virtual("globalId").get ()->
        this._id
      schema.set 'toJSON', { virtuals: true }
      MongooseManager.model 'Diner', schema
    createObject: (globalId, firstName, lastName)->
      {
        GlobalId: globalId
        firstName: firstName
        lastName: lastName
      }demo/DinerService.coffee
Service that uses the mongodb diner model created above.
module.exports = (Diner, Promise) ->
  new class DinerService
    getDiner: (id)->
      Diner
        .findOneAsync({ _id: id })
        .then (diner)->
          diner
        .error (error)->
          Logger.error(error)
          {}start.coffee
injector = require "./src/injector"
injector().inject (MongooseManager)->
  UncaughtHander.listen()
  # Initiate the connection
  MongooseManger.connect()Contributing
We accept pull requests
Please send in pull requests and they will be reviewed in a timely manner. Please review this generic guide to submitting a good pull requests. The only things we ask in addition are the following:
- Please submit small pull requests
- Provide a good description of the changes
- Code changes must include tests
- Be nice to each other in comments. :innocent:
Style guide
The majority of the settings are controlled using an EditorConfig configuration file. To use it please download a plugin for your editor of choice.
All tests should pass
To run the test suite, first install the dependancies, then run npm test
$ npm install
$ npm test
