-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
47 lines (38 loc) · 1.17 KB
/
app.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
require('dotenv').config();
var express = require('express'),
config = require('./config/config'),
glob = require('glob'),
mongoose = require('mongoose'),
exec = require('child_process').exec;
mongoose.Promise = require('bluebird');
var startExpress = function() {
console.log("Starting express server...");
var models = glob.sync(config.root + '/app/models/*.js');
models.forEach(function (model) {
require(model);
});
var app = express();
require('./config/express')(app, config);
app.listen(config.port, function () {
console.log('Express server listening on port ' + config.port);
// launch workers
var workers = glob.sync(config.root + '/app/workers/*.js');
workers.forEach(function (worker) {
require(worker)();
});
});
};
var connectWithRetry = function() {
console.log("Starting mongodb...");
mongoose.connect(config.db, function(err) {
if (!err) {
console.log("Mongodb found!");
startExpress();
} else {
console.log("Mongodb not found, running mongod...");
exec('mongod --dbpath=/data --port 27017 --nojournal');
setTimeout(connectWithRetry, 2500);
}
});
};
connectWithRetry();