metrics-server
Version:
Basic metrics server and client.
57 lines (47 loc) • 1.36 kB
JavaScript
/***
* Node modules
*/
var events = require('events');
var util = require('util');
var path = require('path');
var fs = require('fs');
//
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
/**
*
*/
var Mongoose = module.exports = {};
Mongoose.hasStart = false;
Mongoose.start = function(options) {
if (Mongoose.hasStart) {
return;
}
Mongoose.hasStart = true;
var uri = 'mongodb://';
if (options.username && options.password) {
uri += options.username + ':' + options.password + '@';
}
uri += (options.host || 'localhost' ) + ':' + (options.port || '27017') + (options.path || '/data/db');
console.log('Mongodb connecting [' + uri + ']');
mongoose.connect(uri, {
db : {
native_parser : true
}
});
mongoose.connection.once('open', function() {
console.log('Mongodb open [' + uri + ']');
});
mongoose.connection.on('close', function() {
console.log('Mongodb close [' + uri + ']');
mongoose.connect(uri);
});
var files = fs.readdirSync(__dirname + '/schema');
console.log('Mongodb laoding schemas [' + files.join(', ') + ']');
for (var i = 0; i < files.length; i++) {
var filePath = __dirname + '/schema/' + files[i];
var fileName = files[i].split('.')[0];
console.log('Mongodb laoding schema (' + fileName + ') - [' + path.basename(filePath) + ']');
Mongoose[fileName] = require(filePath);
};
};