I am using the node-mongodb-native driver with mongodb to create a website.
I have a question on how to open a mongodb connection once and then use it in collection usernames in user.js and messages with collection names in comment.js
I want to open a db connection in db.js , then insert / save data for users and message collections
Currently the code is my db.js
var Db = require('mongodb').Db, Connection = require('mongodb').Connection, Server = require('mongodb').Server; module.exports = new Db( 'blog', new Server('localhost', Connection.DEFAULT_PORT, {auto_reconnect: true}) );
I used db.js in user.js as follows
var mongodb = require('./db'); function User(user){ this.name = user.name; this.password = user.password; this.email = user.email; }; module.exports = User; User.prototype.save = function(callback) {//save user information //document to save in db var user = { name: this.name, password: this.password, email: this.email }; mongodb.close(); //open mongodb database mongodb.open(function(err, db){ if(err){ return callback(err); } //read users collection db.collection('users', function(err, collection){ if(err){ mongodb.close(); return callback(err); } //insert data into users collections collection.insert(user,{safe: true}, function(err, user){ mongodb.close(); callback(err, user);//success return inserted user information }); }); }); };
and comment.js
var mongodb = require('./db'); function Comment(name, day, title, comment) { this.name = name; this.day = day; this.title = title; this.comment = comment; } module.exports = Comment; Comment.prototype.save = function(callback) { var name = this.name, day = this.day, title = this.title, comment = this.comment; mongodb.open(function (err, db) { if (err) { return callback(err); } db.collection('posts', function (err, collection) { if (err) { mongodb.close(); return callback(err); }