-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
126 lines (104 loc) · 3.06 KB
/
server.js
File metadata and controls
126 lines (104 loc) · 3.06 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
var cookieParser = require('cookie-parser')
app.use(cookieParser())
var redis = require('redis');
app.get('/', function(req, res){
getRootpage(req, res);
});
app.get('/user', function(req, res){
getUserpage(req, res);
});
app.get('/hof', function(req, res){
getHallpage(req, res);
});
app.get('/about', function(req, res){
res.render('pages/about', {
});
});
app.post('/_action', function(req, res){
var year = 60 * 1000 * 60 * 24 * 365;
if (req.body.username) res.cookie('username', req.body.username, { maxAge: year });
res.redirect('back');
});
/* istanbul ignore next */
if (!module.parent) {
app.listen(7700);
console.log('Express started on port 7700');
}
///////////////////////////////////////////////////////////////////////////////
// root page template
///////////////////////////////////////////////////////////////////////////////
function getRootpage(req, res)
{
var username = req.cookies.username;
if (!username)
username = "set your name";
var client = redis.createClient(6379, '127.0.0.1');
client.on('connect', function() {
console.log('redis connected');
});
client.mget(["weekly_news", "notice"], function(err, vals) {
var news = JSON.parse(vals[0]);
var news_cnt = news.length;
var notice = JSON.parse(vals[1]);
var notice_cnt = notice.length;
res.render('pages/index', {
username: username,
news: news,
news_cnt: news_cnt,
notice: notice,
notice_cnt: notice_cnt,
});
});
client.quit();
}
///////////////////////////////////////////////////////////////////////////////
// user page template
///////////////////////////////////////////////////////////////////////////////
function getUserpage(req, res)
{
var username = req.cookies.username;
console.log("username:" + username);
if (!username)
username = "set your name";
var client = redis.createClient(6379, '127.0.0.1');
client.on('connect', function() {
console.log('redis connected');
});
client.get(username, function(err, reply) {
res.render('pages/user', {
username: username,
attend: reply
});
});
client.quit();
}
///////////////////////////////////////////////////////////////////////////////
// Hall of Fame page template
///////////////////////////////////////////////////////////////////////////////
function getHallpage(req, res)
{
var username = req.cookies.username;
console.log("username:" + username);
if (!username)
username = "set your name";
var client = redis.createClient(6379, '127.0.0.1');
client.on('connect', function() {
console.log('redis connected');
});
client.get("halloffame", function(err, reply) {
res.render('pages/hof', {
username: username,
notice: reply /* html variable */
});
});
client.quit();
}