UNPKG

backdraft

Version:

API starter kit for rapid response development. Based on Express.

62 lines (49 loc) 1.94 kB
var meta = {source: 'lib/db.js'}; var Plugin = function Plugin(api) { this.prototype = { connect: function connect() { meta.function = 'connect'; api.log('db: Connecting to Database'); var url = 'mongodb://' + api.config.database.name; if (api.config.database.user && api.config.database.pass) { url = 'mongodb://' + api.config.database.user + ':' + api.config.database.pass + '@' + api.config.database.name; } api.mongoose.connect(url, function (e) { if (e) { meta.detail = e; api.logger.exception('Database Connection Error', meta); api.handler.errorHandler(e); api.handler.shutdown(); } }); }, disconnect: function disconnect() { meta.function = 'disconnect'; api.log('db: Disconnecting from database.'); }, create: function create(record, Model, next) { meta.function = 'create'; api.logger.debug('Adding Record', meta); var input = new Model(record); input.save(function create (err) { if (err) api.logger.error(err, meta); api.logger.debug('Saved (Create).', meta); next(err, record); }); }, update: function update(record, next) { meta.function = 'update'; api.logger.debug('Updating Record', meta); record.modified = new Date(); record.save(function dbUpdate(err) { if (err) api.logger.error(err, meta); api.logger.debug('Saved (Update).', meta); next(err, record); }); } }; }; module.exports = function (bdApi) { var plugin = new Plugin(bdApi); return plugin.prototype; };