Repository navigation
Expand file tree
/
Copy pathassignment_9.js
More file actions
144 lines (119 loc) · 3.6 KB
/
Copy pathassignment_9.js
File metadata and controls
144 lines (119 loc) · 3.6 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
var express = require('express');
var app = express();
var handlebars = require('express-handlebars').create({
defaultLayout: 'main'
});
var session = require('express-session');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(bodyParser.json());
app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
app.set('port', 3872);
app.use(session({
secret: 'Password'
}));
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit: 10,
host: 'mysql.eecs.oregonstate.edu',
user: 'cs290_cisnerog',
password: 'xxxxxx',
database: 'cs290_cisnerog'
});
app.get('/', function (req, res, next) {
var context = {};
if (!session.workouts) {
pool.query("DROP TABLE IF EXISTS workouts", function (err) {
var createString = "CREATE TABLE workouts(" +
"id INT PRIMARY KEY AUTO_INCREMENT," +
"name VARCHAR(255) NOT NULL," +
"reps INT," +
"weight INT," +
"unit BOOLEAN," +
"date DATE)";
pool.query(createString, function (err) {
res.render('workouts', context);
})
});
} //end of if
});
app.post('/', function (req, res, next) {
var context = {};
if(req.body['add workout'] && req.body.name==''){console.log('add a name')};
if (req.body['add workout'] && req.body.name!=''){
pool.query('INSERT INTO workouts (name, reps, weight, unit, date) VALUES (?,?,?,?,?)', [req.body.name, req.body.reps, req.body.weight, req.body.unit, req.body.date], function (results) {
pool.query('SELECT * FROM workouts', function (err, rows, fields) {
if(err){
next(err);
return;
}
//context.results = JSON.parse(JSON.stringify(rows));
context.results = rows;
res.render('workouts', context);
});
});
}
/*
if(!req.session.workouts){ //no workouts
res.render('reset_workouts', context);
return;
}
*/
if(req.body['edit']){
pool.query('SELECT * FROM workouts WHERE id=?', [req.body.id], function(err, result){
if(err){
next(err);a
return;
}
if(result.length == 1){
context.cur = result[0];
res.render('edit', context.cur);
}
});
}
if(req.body['update'] && req.body.name!=''){
pool.query('UPDATE workouts SET name=?, reps=?, weight=?, unit=?, date=?', [req.body.name, req.body.reps, req.body.weight, req.body.unit, req.body.date], function(err, result){
if(err){
next(err);
return;
}
pool.query('SELECT * FROM workouts', function(err, rows, fields){
if(err){
next(err);
return;
}
context.results = rows;
res.render('workouts', context)
});
});
}
if(req.body['delete']){
pool.query('DELETE FROM workouts WHERE id=?', [req.body.id], function(err, result){
if(err){
next(err);
return;
}
pool.query('SELECT * FROM workouts', function(err, rows, fields){
//context.results = JSON.parse(JSON.stringify(rows));
context.results = rows;
res.render('workouts', context);
});
});
}
});
app.use(function (req, res) { //page not found
res.status(404);
res.render('404');
});
app.use(function (err, req, res, next) { //error
console.error(err.stack);
res.type('plain/text');
res.status(500);
res.render('500');
});
app.listen(app.get('port'), function () {
console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.');
});