diff --git a/lib/db.js b/lib/db.js index 6a9deb6..6ff9f0a 100644 --- a/lib/db.js +++ b/lib/db.js @@ -1,14 +1,35 @@ -var NeDbClient = require('./clients/nedbclient'); -var MongoClient = require('./clients/mongoclient'); +try { + var NeDbClient = require('./clients/nedbclient'); +} catch (e) { + if(e.code !== 'MODULE_NOT_FOUND') { + throw e; + } + var NeDbClient = null; +} + +try { + var MongoClient = require('./clients/mongoclient'); +} catch (e) { + if(e.code !== 'MODULE_NOT_FOUND') { + throw e; + } + var MongoClient = null; +} exports.connect = function(url, options) { if (url.indexOf('nedb://') > -1) { + if(NeDbClient === null) { + return Promise.reject(new Error('The NeDB dependency has not been met')); + } // url example: nedb://path/to/file/folder return NeDbClient.connect(url, options).then(function(db) { global.CLIENT = db; return db; }); } else if(url.indexOf('mongodb://') > -1) { + if(MongoClient === null) { + return Promise.reject(new Error('The MongoDB dependency has not been met')); + } // url example: 'mongodb://localhost:27017/myproject' return MongoClient.connect(url, options).then(function(db) { global.CLIENT = db; @@ -17,4 +38,4 @@ exports.connect = function(url, options) { } else { return Promise.reject(new Error('Unrecognized DB connection url.')); } -}; \ No newline at end of file +};