2016-03-30 15:20:01 +00:00
|
|
|
import nconf from 'nconf';
|
|
|
|
|
import logger from './logger';
|
|
|
|
|
import autoinc from 'mongoose-id-autoinc';
|
|
|
|
|
import mongoose from 'mongoose';
|
2016-05-11 12:34:01 +00:00
|
|
|
import Bluebird from 'bluebird';
|
2016-03-30 15:20:01 +00:00
|
|
|
|
|
|
|
|
const IS_PROD = nconf.get('IS_PROD');
|
|
|
|
|
|
|
|
|
|
// Use Q promises instead of mpromise in mongoose
|
2016-05-11 12:34:01 +00:00
|
|
|
mongoose.Promise = Bluebird;
|
2016-03-30 15:20:01 +00:00
|
|
|
|
2016-05-13 08:34:09 +00:00
|
|
|
let mongooseOptions = !IS_PROD ? {} : {
|
2016-05-12 20:43:38 +00:00
|
|
|
replset: { socketOptions: { keepAlive: 120, connectTimeoutMS: 30000 } },
|
|
|
|
|
server: { socketOptions: { keepAlive: 120, connectTimeoutMS: 30000 } },
|
2016-03-30 15:20:01 +00:00
|
|
|
};
|
2016-05-18 21:50:24 +00:00
|
|
|
|
|
|
|
|
const NODE_DB_URI = nconf.get('IS_TEST') ? nconf.get('TEST_DB_URI') : nconf.get('NODE_DB_URI');
|
|
|
|
|
let db = mongoose.connect(NODE_DB_URI, mongooseOptions, (err) => {
|
2016-03-30 15:20:01 +00:00
|
|
|
if (err) throw err;
|
|
|
|
|
logger.info('Connected with Mongoose.');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
autoinc.init(db);
|