-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathserver.js
68 lines (51 loc) · 1.77 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'use strict';
// Default node environment to development
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var express = require('express'),
socketio = require('socket.io'),
mongoose= require('mongoose');
var path = require('path'),
fs = require('fs');
// Application Config
var config = require(path.join(__dirname,'/config/config'));
// Connect to database
var db = mongoose.connect(config.mongo.uri, config.mongo.options);
db.connection.on('error',function(){
console.log('********************************************');
console.log('* MongoDB Process not running *');
console.log('********************************************\n');
process.exit(1);
})
// check system
require('./app/others/system-check')();
// Bootstrap models
var modelsPath = path.join(__dirname, 'app/models');
fs.readdirSync(modelsPath).forEach(function (file) {
require(modelsPath + '/' + file);
});
var app = express();
// Express settings
require('./config/express')(app);
// Start server
var server;
if (config.https) {
var https_options = {
ca: fs.readFileSync("/home/ec2-user/.ssh/ca-chain.crt"),
key: fs.readFileSync("/home/ec2-user/.ssh/nodeims.key"),
cert: fs.readFileSync("/home/ec2-user/.ssh/STAR_nodeims_com.crt")
};
server = require('https').createServer(https_options, app);
require('http').createServer(app).listen(80);
}
else {
server = require('http').createServer(app);
}
var io = socketio.listen(server);
//Bootstrap socket.io
require('./app/controllers/server-socket').startSIO(io);
require('./app/controllers/scheduler');
server.listen(config.port, function () {
console.log('Express server listening on port %d in %s mode', config.port, app.get('env'));
});
// Expose app
module.exports = app;