scriptremote
Version:
Message server providing secure remote access to scripted applications from a browser UI
44 lines (38 loc) • 1.38 kB
JavaScript
;
var mongoose = require('mongoose'),
chalk = require('chalk'),
gridStream = require('gridfs-stream'),
q = require('q'),
config = require('./config');
/**
* Bootstrap mongodb and gridFS - returns a promise
*/
module.exports = function() {
var deferred = q.defer();
//var mgopts = { server: { socketOptions: { keepAlive: 100, connectTimeoutMS: 10000, socketTimeoutMS: 30000 } } };
var mgopts = { server: { socketOptions: { keepAlive: 100} } };
if (config.mongoUser && config.mongoPassword) {
mgopts['user'] = config.mongoUser;
mgopts['pass'] = config.mongoPassword;
mgopts['auth'] = {authdb: 'admin'};
}
mongoose.connect(config.db, mgopts, function(err) {
if (err) {
console.error(chalk.red('Could not connect to MongoDB!'));
console.log(chalk.red(err));
deferred.reject(err);
}
else {
var cnx = mongoose.connection;
cnx.on('error', function(err) {
//var err = new Error('MongoDB connection error');
console.log(chalk.red(err));
});
gridStream.mongo = mongoose.mongo;
var grid = gridStream(cnx.db, mongoose.mongo);
var dbx = {'cnx': cnx, 'grid': grid};
deferred.resolve(dbx);
}
});
return deferred.promise;
}