I have 2 apps, each in a different folder and they need to share the same models.
I want to symlink the models folder from app A to a models folder in app B.
I'm running into issues with the fact that once you call mongoose.model('Model', Schema) in app A, they are 'tied' to that app's mongoose/mongodb connection.
Does anyone have any tips on the best way to manage this?
Mongoose Schema vs. Model. A Mongoose model is a wrapper on the Mongoose schema. A Mongoose schema defines the structure of the document, default values, validators, etc., whereas a Mongoose model provides an interface to the database for creating, querying, updating, deleting records, etc.
Connecting to MongoDBMongoose requires a connection to a MongoDB database. You can require() and connect to a locally hosted database with mongoose. connect() , as shown below. You can get the default Connection object with mongoose.
Mongoose is a Node. js-based Object Data Modeling (ODM) library for MongoDB. It is akin to an Object Relational Mapper (ORM) such as SQLAlchemy for traditional SQL databases. The problem that Mongoose aims to solve is allowing developers to enforce a specific schema at the application layer.
Each element of the array is an object with 2 properties: schema and model . This property is typically only useful for plugin authors and advanced users. You do not need to interact with this property at all to use mongoose.
You have share your mongoose instance around by using doing something like this
var mongoose = require('mongoose');
module.exports.mongoose = mongoose;
var user = require('./lib/user');
Now inside of "lib/user.js"
var mongoose = module.parent.mongoose;
var model = mongoose.model('User', new mongoose.Schema({ ... });
module.exports = model;
So doing it like that you can require "lib/user.js" in other applications
What I ended up doing here was importing app1 as a submodule (with Git) in app2. This way the models can be imported as normal and are tied to the app's default mongoose
connection.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With