merged db state check from deploydapp

This commit is contained in:
Ritchie
2011-12-29 14:12:00 -07:00
parent efc8f7d083
commit 3920e13996

View File

@@ -6,8 +6,21 @@ var config = require('./config')
, Server = mongodb.Server
, server = new Server(config['db-host'], 27017, {auto_reconnect: true, native_parser: true})
, db = new Db(config['db'], server, {})
, EventEmitter = require('events').EventEmitter
;
var loader = new EventEmitter();
// since we are using 'once'
loader.setMaxListeners(0);
db.open(function (err) {
if(err) {
loader.emit('error', err);
} else {
loader.emit('connected');
}
});
function ready(fn) {
return function() {
@@ -15,13 +28,10 @@ function ready(fn) {
, args = arguments
;
server.state === 'connected'
db.state === 'connected'
? fn.apply(this, arguments)
: db.open(function(err) {
if(err) console.log(err);
else {
fn.apply(_self, args);
}
: loader.once('connected', function () {
fn.apply(_self, args);
})
;
}
@@ -100,7 +110,20 @@ module.exports = {
index[property] = 1;
collection.ensureIndex(index, options, fn);
});
})
}),
dropDatabase: function (database, fn) {
var Db = mongodb.Db
, Server = mongodb.Server
, server = new Server(config['db-host'], 27017, {auto_reconnect: true, native_parser: true})
, dropDb = new Db(database, server, {})
;
dropDb.open(function () {
dropDb.dropDatabase(function (err, result) {
fn();
});
});
}
}