mirror of
https://github.com/zhigang1992/deployd.git
synced 2026-05-23 21:35:38 +08:00
merged db state check from deploydapp
This commit is contained in:
37
lib/db.js
37
lib/db.js
@@ -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();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user