-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathapp.js
48 lines (44 loc) · 1.52 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
48
var winston = require('winston');
var mongoClient = require('mongodb').MongoClient;
global.rootDir = __dirname;
var mongoConnStr = process.env.CUSTOMCONNSTR_MONGOLABS_BLOG || 'mongodb://localhost:27017/blog';
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
name: 'info-file',
filename: 'requests.log',
level: 'info'
}),
new (winston.transports.File)({
name: 'error-file',
filename: 'error.log',
level: 'error',
handleExceptions: process.env.NODE_ENV === 'production' ? true : false
})
]
});
var startCallback = function(err, addr) {
if (err) {
console.error('Failed to start server: %j', err);
process.exit(1);
} else {
console.info('Server running on %j', addr);
}
};
mongoClient.connect(mongoConnStr, function(err, db) {
if(err) {
console.error('Failed to connect to mongo: %j', err);
process.exit(1);
}
else {
console.info('Connected to mongo, starting server...');
var authenticationController = require('./controllers/authenticationController')(db);
var mainController = require('./controllers/mainController')(db);
var postsController = require('./controllers/postsController')(db);
var usersController = require('./controllers/usersController')(db);
var imageController = require('./controllers/imageController')(db);
var scheduler = require('./scheduler')();
var server = require('./server')(logger, authenticationController, mainController, postsController, usersController, imageController, scheduler);
server.start(startCallback);
}
});