forked from lpinca/binb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
74 lines (65 loc) · 2.4 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
/**
* Module dependencies.
*/
var errorHandler = require('./lib/middleware/errorHandler')
, express = require('express')
, favicon = require('serve-favicon')
, http = require('http')
, port = require('./config').port
, session = require('express-session')
, RedisStore = require('connect-redis')(session)
, secret = process.env.SITE_SECRET || 'shhhh, very secret'
, cookieParser = require('cookie-parser')(secret)
, site = require('./routes/site')
, urlencoded = require('body-parser').urlencoded
, user = require('./routes/user')
, usersdb = require('./lib/redis-clients').users;
/**
* Setting up Express.
*/
var app = express()
, pub = __dirname + '/public' // Path to public directory
, sessionstore = new RedisStore({client: usersdb})
, server = http.createServer(app); // HTTP server object
// Configuration
app.set('view engine', 'jade');
app.use('/static', express.static(pub, {maxAge: 2419200000})); // 4 weeks = 2419200000 ms
app.use(favicon(pub + '/img/favicon.ico', {maxAge: 2419200000}));
app.use(urlencoded());
app.use(cookieParser);
app.use(session({
cookie: {maxAge: 14400000}, // 4 h = 14400000 ms
rolling: true,
store: sessionstore
}));
// Routes
app.get('/', site.home);
app.get('/artworks', site.artworks);
app.get('/changepasswd', site.validationErrors, site.changePasswd);
app.post('/changepasswd', user.validateChangePasswd, user.checkOldPasswd, user.changePasswd);
app.get('/leaderboards', user.leaderboards);
app.get('/login', site.validationErrors, site.login);
app.post('/login', user.validateLogin, user.checkUser, user.authenticate);
app.get('/logout', user.logout);
app.get('/recoverpasswd', site.validationErrors, site.recoverPasswd);
app.post('/recoverpasswd', user.validateRecoverPasswd, user.sendEmail);
app.get('/resetpasswd', site.validationErrors, site.resetPasswd);
app.post('/resetpasswd', user.resetPasswd);
app.get('/sliceleaderboard', user.sliceLeaderboard);
app.get('/signup', site.validationErrors, site.signup);
app.post('/signup', user.validateSignUp, user.userExists, user.emailExists, user.createAccount);
app.get('/:room', site.room);
app.get('/user/:username', user.profile);
app.use(errorHandler);
/**
* Setting up the rooms.
*/
require('./lib/rooms')({
parser: cookieParser,
server: server,
sessionstore: sessionstore
});
// Begin accepting connections
server.listen(port, function() {
console.info('binb server listening on port ' + port);
});