This repository has been archived by the owner on Apr 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
82 lines (69 loc) · 2.29 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// 3rd Party Libs
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var express = require('express');
var favicon = require('serve-favicon');
var http = require('http');
var logger = require('morgan');
var path = require('path');
var socketio = require('socket.io');
// Our Libs/Resources
var db = require('./lib/db.js');
var live = require('./routes/live');
var vor = require('./routes/vor');
var predict = require('./routes/predict');
var mini = require('./routes/mini');
var api = require('./routes/api');
// A `config.json` file is required,
var config = require('./config');
var app = express();
global.dbo = new db.connection(config.mongo);
// Templates folder for html generation
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hjs');
// Default template, this is populated with template contents.
app.set('layout', 'layout');
// Disable this for debug use, views are cached once the process is started
app.enable('view cache');
app.engine('hjs', require('hogan-express'));
app.use(favicon(__dirname + '/public/images/favicon.ico'));
app.use(logger('dev'));
// Middleware for JSON parsing (content-type: application/json)
app.use(bodyParser.json());
// Parser for urlencoded multiform data (content-type: multipart/form-data)
app.use(bodyParser.urlencoded({extended: true}));
app.use(cookieParser());
// All static resources
app.use(express.static(path.join(__dirname, 'public')));
// UI Route(s)
app.use('/', live.router);
app.use('/live', live.router);
app.use('/vor', vor.router);
app.use('/predict', predict.router);
app.use('/mini', mini.router);
// API Route(s)
app.use('/api', api.router);
// Any unhandled paths are 404.
app.use('*', function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// If magically the 404 isn't handled, 500.
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
var server = http.createServer(app);
var io = socketio.listen(server);
var port = process.env.PORT || 3000;
vor.setup(app, io);
live.setup(app, io);
api.setWhitelist(config.whitelist);
predict.setup(app, io);
server.listen(port, '127.0.0.1', function() {
console.log("Server listening on *:" + port);
});