I’m using Mongoose to manage a Mongo database. My connection file is quite simple:
var mongoose = require('mongoose')
mongoose.connection.on("open", function(){
console.log("Connection opened to mongodb at %s", config.db.uri)
});
console.log("Connecting to %s", config.db.uri)
mongoose.connect(config.db.uri)
global.mongoose = mongoose
Then in my app.js I just
require('./database)
and the “mongoose” variable is available globally. I’d prefer not to use globals (at least not directly). Is there a better way of sharing the database connection variable across node (I’m using express.js) via a singleton pattern or some other method?
I just do the following in my app.js file:
At this point any file that needs access to that model can do:
And finally in your model, you can have the file written normally then export it at the bottom:
I don’t know if this the best most awesome solution (just started wrapping my head around exporting modules about 2 days ago) but it does work. Maybe someone can comment if this is a good way to do it.