-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
93 lines (79 loc) · 2.8 KB
/
app.js
File metadata and controls
93 lines (79 loc) · 2.8 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
var express = require('express');
var path = require('path');
var http = require('http');
var bodyParser = require('body-parser');
var mysql = require('./db.js');
var handlebars = require('express-handlebars').create({ defaultLayout: `main` });
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var flash = require('connect-flash');
var helper = require('./helper.js');
var viewuser = require('./routes/viewuser.js');
var addaward = require('./routes/addaward.js');
var password = require('./routes/password.js');
var login = require('./routes/login.js');
var adduser = require('./routes/adduser.js');
var useraccount = require('./routes/useraccount.js');
var award = require('./routes/award.js');
var edit = require('./routes/edit.js');
var viewaward = require('./routes/viewaward.js');
var search = require('./routes/search.js');
var chartweek = require('./routes/chartweek.js');
var chartmonth = require('./routes/chartmonth.js');
var app = express();
app.use(flash());
app.use(express.static('client/'));
//setup sessions with redis store using default redis server settings @ 127.0.0.1:6379
app.use(session({
store: new RedisStore(),
secret: 'hush',
resave: false,
saveUninitialized: false
}));
app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use('/', login);
app.use('/login', login);
app.use('/password', password);
app.use('/addaward', helper.authUser, addaward);
app.use('/useraccount', helper.authUser, useraccount);
app.use('/viewuser', helper.authAdmin, viewuser);
app.use('/adduser', helper.authAdmin, adduser);
app.use('/award', helper.authAdmin, award);
app.use('/edit', helper.authAdmin, edit);
app.use('/viewaward', helper.authAdmin, viewaward);
app.use('/search', helper.authAdmin, search);
app.use('/chartweek', helper.authAdmin, chartweek);
app.use('/chartmonth', helper.authAdmin, chartmonth);
//test server
app.get('/test', function(req, res) {
res.type('text/plain');
res.send('Testing!');
});
//destroy session and redirect for logout route
app.get('/logout', function(req, res, next) {
req.session.destroy();
res.redirect('/');
});
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
context = {};
context.status = err.status || 500;
context.message = err.message || 'Server Error';
res.render('error.handlebars', context);
});
var server = http.createServer(app);
server.timeout = 0;
server.listen(8080, "0.0.0.0", function() {
var addr = server.address();
console.log("Server listening at", addr.address + ":" + addr.port);
});
module.exports = app;