Creates a schema registry that can be used to store and retrieve mongoose schemas.
The Mongoose Schema Registry allows developers to register schemas without creating a mongoose model. This allows extension of schemas later on prior to registering those models.
The following quick example should help you get started (taken from the ghiraldi framework mvc.js file):
File1js// First, declare the registry object.var registry = require'mongoose-schema-registry'// The registry fires events when schemas are added.registryon'add'// tag contains the name you gave the schema when you added it.// schema is the actual schema added.;// Add a schema to the registry using the add methodregistryadd'schema_name' schema;
You can modify an existing schema by calling the getSchema method. Since the registry is a singleton, requiring will give you the same object with the already registered schemas.
// File2.jsvar registry = require'mongoose-schema-registry';var testSchema = registrygetSchema'testSchema';// From here, you can add things to your test schema.// When you're done, just re-add the schema. The new one will clobber// the old one.registryadd'testSchema' testSchema;
To finally register the schemas into mongoose models, just iterate through the schemas and call the mongoose.model method.
var keys = registrygetKeys;_eachkeysvar thisSchema = registrygetSchemakey;mongoosemodelkey thisSchema;;