dvp-mongomodels
Version:
221 lines (191 loc) • 6.21 kB
JavaScript
// var util = require('util');
// var config = require('config');
// var mongoip = config.Mongo.ip;
// var mongoport = config.Mongo.port;
// var mongodb = config.Mongo.dbname;
// var mongouser = config.Mongo.user;
// var mongopass = config.Mongo.password;
// var mongoreplicaset = config.Mongo.replicaset;
// var mongoose = require('mongoose');
// var connectionstring = '';
// mongoip = mongoip.split(',');
// if (util.isArray(mongoip)) {
// if (mongoip.length > 1) {
// mongoip.forEach(function (item) {
// connectionstring += util.format('%s:%d,', item, mongoport)
// });
// connectionstring = connectionstring.substring(0, connectionstring.length - 1);
// connectionstring = util.format('mongodb://%s:%s@%s/%s', mongouser, mongopass, connectionstring, mongodb);
// if (mongoreplicaset) {
// connectionstring = util.format('%s?replicaSet=%s', connectionstring, mongoreplicaset);
// }
// }
// else {
// connectionstring = util.format('mongodb://%s:%s@%s:%d/%s', mongouser, mongopass, mongoip[0], mongoport, mongodb);
// }
// } else {
// connectionstring = util.format('mongodb://%s:%s@%s:%d/%s', mongouser, mongopass, mongoip, mongoport, mongodb);
// }
// console.log(connectionstring);
// var options = {
// useNewUrlParser: true,
// useUnifiedTopology: true,
// useCreateIndex: true
// }
// mongoose.connect(connectionstring,/*{server:{auto_reconnect:true}}*/options).catch(err => {
// console.error(new Error(err));
// });
// mongoose.connection.on('error', function (err) {
// console.error(new Error(err));
// //mongoose.disconnect();
// });
// mongoose.connection.on('opening', function () {
// console.log("reconnecting... %d", mongoose.connection.readyState);
// });
// mongoose.connection.on('disconnected', function () {
// console.error(new Error('Could not connect to mongo database'));
// //mongoose.connect(connectionstring,{server:{auto_reconnect:true}});
// });
// mongoose.connection.on('open', function () {
// console.log("Connected to db");
// });
// mongoose.connection.on('reconnected', function () {
// console.log('MongoDB reconnected!');
// });
// mongoose.connection.on('reconnectFailed', function () {
// console.log('MongoDB reconnect failed!');
// });
// process.on('SIGINT', function () {
// mongoose.connection.close(function () {
// console.log('Mongoose default connection disconnected through app termination');
// process.exit(0);
// });
// });
// module.exports.connection = mongoose.connection;
var util = require("util");
var config = require("config");
var mongoip = config.Mongo.ip;
var mongoport = config.Mongo.port;
var mongodb = config.Mongo.dbname;
var mongouser = config.Mongo.user;
var mongopass = config.Mongo.password;
var mongoreplicaset = config.Mongo.replicaset;
var mongotype = config.Mongo.type;
var mongoose = require("mongoose");
var connectionstring = "";
mongoip = mongoip.split(",");
if (util.isArray(mongoip)) {
if (mongoip.length > 1) {
mongoip.forEach(function (item) {
connectionstring +=
mongoport == ""
? util.format("%s,", item)
: util.format("%s:%d,", item, mongoport);
});
connectionstring = connectionstring.substring(
0,
connectionstring.length - 1
);
connectionstring = util.format(
"%s://%s:%s@%s/%s",
mongotype,
mongouser,
mongopass,
connectionstring,
mongodb
);
if (mongoreplicaset) {
connectionstring = util.format(
"%s?replicaSet=%s",
connectionstring,
mongoreplicaset
);
}
} else {
connectionstring =
mongoport == ""
? util.format(
"%s://%s:%s@%s/%s",
mongotype,
mongouser,
mongopass,
mongoip[0],
mongodb
)
: util.format(
"%s://%s:%s@%s:%d/%s",
mongotype,
mongouser,
mongopass,
mongoip[0],
mongoport,
mongodb
);
}
} else {
connectionstring =
mongoport == ""
? util.format(
"%s://%s:%s@%s/%s",
mongotype,
mongouser,
mongopass,
mongoip,
mongodb
)
: util.format(
"%s://%s:%s@%s:%d/%s",
mongotype,
mongouser,
mongopass,
mongoip,
mongoport,
mongodb
);
}
console.log(connectionstring);
var options = {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
};
mongoose
.connect(connectionstring, /*{server:{auto_reconnect:true}}*/ options)
.catch((err) => {
console.error(new Error(err));
});
// mongoose.connection.on("error", function (err) {
// console.error(new Error(err));
// //mongoose.disconnect();
// });
mongoose.connection.on("error", function (err) {
//console.error(new Error(err));
console.error("Connection Event Error:", err.message);
process.exit(0);
});
mongoose.connection.on("opening", function () {
console.log("reconnecting... %d", mongoose.connection.readyState);
});
mongoose.connection.on("disconnected", function () {
console.error(new Error("Could not connect to mongo database"));
//process.exit(exitCode);
//mongoose.connect(connectionstring,{server:{auto_reconnect:true}});
});
mongoose.connection.on("open", function () {
console.log("Connected to db");
});
mongoose.connection.on("reconnected", function () {
console.log("MongoDB reconnected!");
});
mongoose.connection.on("reconnectFailed", function () {
console.log("MongoDB reconnect failed!");
});
process.on("SIGINT", function () {
mongoose.connection.close(function () {
console.log(
"Mongoose default connection disconnected through app termination"
);
process.exit(0);
});
});
module.exports.connection = mongoose.connection;