Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fh-wfm-mongoose-store

Package Overview
Dependencies
Maintainers
5
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fh-wfm-mongoose-store

Direct mongoose storage

  • 0.4.1-pre.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
increased by100%
Maintainers
5
Weekly downloads
 
Created
Source

raincatcher-mongoose-store

One stop shop for all Mongoose schemas

Run tests

Ensure Mongo is running on your machine, type the following command

npm test

Models

Mongoose models can be found in models directory. To add a new model use the same naming convention for desired dataset. ie. workorders model for workorders dataset / collection. Then require the directory and access the model using the name applied.

Note: Each schema require autogenerated timestamp that are used by other modules like raincatcher-sync to determine if object was changed. When creating new schema please make sure to add {timestamps: true} as schema option.

API

connect

To connect to mongo


var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var customSchemas = {
    //The key is the same as the datasetId (e.g. workorders)
    workorders: function(mongooseConnection) {
        var customWorkorderSchema = new Schema({
            ...
            name: {type: String}
            ...
        },  {timestamps: true});
        
        mongooseConnection.model('CustomWorkorderModel', customWorkorderSchema);
    }
    ... 
    //Any other custom schemas
    ...
};

Connector.connect('mongodb://mongoUriGoseHere:27017/db', {}, customSchemas)
  .then(function() {
    // connected successfully
  }, function(error) {
    // An error occurred when connecting
  });
getDAL

Get the Data access layer object for a collection/dataset.


var datasetId = "workorders";

Connector.getDAL(datasetId).
  then(function(_dal) {
    // do stuff with dataset dal
  }, function(error) {
    // handle error
  });
listen

The Data Access Layer object for a collection has a listen function that ensures that the CRUDL topics for the data set are subscribed.


/**
* This function has access to the mongoose Model associated with the data set
* through the "model" property
*
* @returns {Promise}
*/
function customListFunction() {
  return this.model.list();
}


var datasetId = "workorders";

Connector.getDAL(datasetId).
  then(function(_dal) {
    
    //This function will subscribe to the CRUDL topics for "workorders"
    //The "list" topic will execute the "customListFunction"
    //Note: This function will only overrdie the "list" topic for a single data set.
    _dal.listen(":data", mediator, {
        list: customListFunction
    });
    
  }, function(error) {
    // handle error
  });

The following functions are overridable:

  • create
  • update
  • list
  • remove
  • read
disconnect
Connector.disconnect()
  .then(function() {
    // disconnected
  }, function(error) {
    // something went wrong
  });

Keywords

FAQs

Package last updated on 20 Apr 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc