Repository navigation
Expand file tree
/
Copy pathexpress.js
More file actions
71 lines (61 loc) · 2.25 KB
/
Copy pathexpress.js
File metadata and controls
71 lines (61 loc) · 2.25 KB
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
68
69
70
71
var express = require('express');
var program = require('commander');
var path = require('path');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var logger = require('morgan');
var fs = require('fs');
mongoose.Promise = require('q').Promise;
program
.option('-c --config [config]', 'specify config file')
.parse(process.argv);
var configFile = program.config ||
path.join(__dirname, './config.json');
var config = JSON.parse(fs.readFileSync(configFile, {
encoding: 'utf8'
}));
var port = config.port;
var login = config.source.login ?
config.source.login + ':' + config.source.password + '@' : '';
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(logger('dev'));
mongoose.connect(config.source.type + '://' + login + config.source.host +
':' + config.source.port + '/' + config.source.db);
var router = express.Router();
router.use(function(req, res, next) {
next();
});
var interval = config.cache ? config.cache * 60 * 1000 : 5 * 60 * 1000;
var models = {
category: require('./models/category.model')(mongoose),
route: require('./models/route.model')(mongoose),
team: require('./models/team.model')(mongoose),
user: require('./models/user.model')(mongoose),
util: require('./models/model.util')
};
var services = {
cache: new (require('./cache.js'))(interval),
category: new (require('./services/category.service'))(models.category, models.util),
route: new (require('./services/route.service'))(models.route, models.util),
team: new (require('./services/team.service'))(models.team, models.util),
user: new (require('./services/user.service.js'))(models.user, models.util)
};
require('./controllers/route.controller.js')(router, services);
require('./controllers/user.controller.js')(router, services);
require('./controllers/team.controller.js')(router, services, config.admin);
require('./data.js')(services);
app.use(express.static(__dirname + '/public'));
router.get('/', function(req, res) {
res.sendFile(__dirname + '/public/index.html');
});
router.get('/policy', function(req, res) {
res.sendFile(__dirname + '/public/policy.html');
});
app.use('/', router);
app.listen(port, function() {
console.log('Express server listening on port ' + port);
});