Skip to content

Commit

Permalink
Check whether there's a callback to handle the open error
Browse files Browse the repository at this point in the history
  • Loading branch information
guileen committed Mar 20, 2012
1 parent 851281c commit 230908f
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 10 deletions.
5 changes: 3 additions & 2 deletions lib/mongoskin/admin.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var Admin = require('mongodb').Admin;
var Admin = require('mongodb').Admin
, utils = require('./utils');

var SkinAdmin = exports.SkinAdmin = function(skinDb) {
this.skinDb = skinDb;
Expand All @@ -10,7 +11,7 @@ var bindSkin = function(name, method) {
var args = arguments.length > 0 ? Array.prototype.slice.call(arguments, 0) : [];
return this.skinDb.open(function(err, db) {
if (err) {
args[args.length - 1](err);
utils.error(err, args, 'SkinAdmin.' + name);
} else {
method.apply(this.nativeAdmin, args);
}
Expand Down
8 changes: 2 additions & 6 deletions lib/mongoskin/collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ var __slice = Array.prototype.slice,
events = require('events'),
Collection = require('mongodb').Collection,
SkinCursor = require('./cursor').SkinCursor,
utils = require('./utils'),
STATE_CLOSE = 0,
STATE_OPENNING = 1,
STATE_OPEN = 2;
Expand Down Expand Up @@ -69,12 +70,7 @@ var bindSkin = function(name, method) {
var args = arguments.length > 0 ? __slice.call(arguments, 0) : [];
this.open(function(err, collection) {
if (err) {
var cb = args.pop();
if(cb) {
cb(err)
} else {
console.error("Error occured with no callback to handle it while calling SkinCollection." + name, err);
}
utils.error(err, args, 'SkinCollection.' + name);
} else {
method.apply(collection, args);
}
Expand Down
3 changes: 2 additions & 1 deletion lib/mongoskin/cursor.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var __slice = Array.prototype.slice,
events = require('events'),
Cursor = require('mongodb').Cursor,
utils = require('./utils'),
STATE_CLOSE = 0,
STATE_OPENNING = 1,
STATE_OPEN = 2;
Expand Down Expand Up @@ -54,7 +55,7 @@ var bindSkin = function(name, method) {
var args = arguments.length > 0 ? __slice.call(arguments, 0) : [];
this.open(function(err, cursor) {
if (err) {
args[args.length - 1](err);
utils.error(err, args, 'SkinCursor.' + name);
} else {
method.apply(cursor, args);
}
Expand Down
3 changes: 2 additions & 1 deletion lib/mongoskin/db.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var __slice = Array.prototype.slice,
mongodb = require('mongodb'),
events = require('events'),
utils = require('./utils'),
SkinAdmin = require('./admin').SkinAdmin,
SkinCollection = require('./collection').SkinCollection,
SkinGridStore = require('./gridfs').SkinGridStore,
Expand Down Expand Up @@ -185,7 +186,7 @@ var bindSkin = function(name, method) {
var args = arguments.length > 0 ? __slice.call(arguments, 0) : [];
return this.open(function(err, db) {
if (err) {
return args[args.length - 1](err);
utils.error(err, args, 'SkinDb.' + name);
} else {
return method.apply(db, args);
}
Expand Down
8 changes: 8 additions & 0 deletions lib/mongoskin/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
exports.error = function(err, args, name) {
var cb = args.pop();
if(cb && typeof cb === 'function') {
cb(err)
} else {
console.error("Error occured with no callback to handle it while calling " + name, err);
}
}

0 comments on commit 230908f

Please sign in to comment.