Винаги можете да напишете модул, който инициализира вашите връзки към базата данни и ги прави достъпни във вашата програма. Например:
mongo.js
var mongodb = require('mongodb');
module.exports.init = function (callback) {
var server = new mongodb.Server("127.0.0.1", 27017, {});
new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
//export the client and maybe some collections as a shortcut
module.exports.client = client;
module.exports.myCollection = new mongodb.Collection(client, 'myCollection');
callback(error);
});
};
app.js
var mongo = require('./mongo.js');
//setup express...
//initialize the db connection
mongo.init(function (error) {
if (error)
throw error;
app.listen(80); //database is initialized, ready to listen for connections
});
randomFile.js
var mongo = require('./mongo.js');
module.exports.doInsert = function () {
//use the collection object exported by mongo.js
mongo.myCollection.insert({test: 'obj'}, {safe:true}, function(err, objects) {
if (err)
console.warn(err.message);
});
};
Знам, че хората говорят за обединяване, но когато направих сравнителен анализ на обединяване на mongo връзки спрямо единична връзка за всички заявки, единичната връзка всъщност се представи по-добре. Разбира се, това беше преди около година, но се съмнявам, че основната концепция се е променила. Всички заявки са асинхронни, така че не е като да са необходими множество връзки, за да се правят едновременни заявки.
Що се отнася до MongoClient, предполагам, че това е новият синтаксис, който те насърчават. Така или иначе, по същество това е клиент обект, който искате да запазите и да направите достъпен, независимо кой стил използвате.