· 8 years ago · Mar 15, 2018, 03:18 AM
1
2
3 dbcon.js
4 var mysql = require('mysql');
5 var pool = mysql.createPool({
6 host : 'localhost',
7 user : 'student',
8 password: 'default',
9 database: 'student'
10 });
11
12 module.exports.pool = pool;
13 index.js
14
15 var express = require('express');
16
17 var app = express();
18 var handlebars = require('express-handlebars').create({defaultLayout:'main'});
19 var bodyParser = require('body-parser');
20 var mysql = require('./dbcon.js');
21
22 app.use(bodyParser.urlencoded({ extended: false }));
23
24 app.engine('handlebars', handlebars.engine);
25 app.set('view engine', 'handlebars');
26 app.set('port', 3000);
27
28 app.get('/reset-table',function(req,res,next){
29 var context = {};
30 mysql.pool.query("DROP TABLE IF EXISTS workouts", function(err){ //replace your connection pool with the your variable containing the connection pool
31 var createString = "CREATE TABLE workouts("+
32 "id INT PRIMARY KEY AUTO_INCREMENT,"+
33 "name VARCHAR(255) NOT NULL,"+
34 "reps INT,"+
35 "weight INT,"+
36 "date DATE,"+
37 "lbs BOOLEAN)";
38 mysql.pool.query(createString, function(err){
39 context.results = "Table reset";
40 res.render('exercise',context);
41 })
42 });
43 });
44
45 app.get('/',function(req,res,next){
46 var context = {};
47 mysql.pool.query('SELECT * FROM workouts', function(err, rows, fields){
48 if(err){
49 next(err);
50 return;
51 }
52 context.exercise = rows;
53 res.render('exercise', context);
54 });
55 });
56
57 app.post('/',function(req,res){
58 var context = {};
59
60 if(req.body['Add Entry']){
61 mysql.pool.query("INSERT INTO workouts (`name`,`reps`,`weight`,`date`,`lbs`) VALUES (?,?,?,?,?)", [req.body.name,req.body.reps,req.body.weight,req.body.date,req.body.lbs], function(err, result){
62 if(err){
63 next(err);
64 return;
65 }
66 });
67 }
68 if(req.body['remove']){
69 mysql.pool.query("DELETE FROM workouts WHERE id = ?", [req.body.id], function(err, result){
70 if(err){
71 next(err);
72 return;
73 }
74 });
75 }
76
77 mysql.pool.query('SELECT * FROM workouts', function(err, rows, fields){
78 if(err){
79 next(err);
80 return;
81 }
82 context.exercise = rows;
83 res.render('exercise',context);
84 });
85 });
86
87
88 app.get('/update',function(req,res,next){
89 var context = {};
90 res.render('update',context);
91 });
92
93 app.post('/update',function(req,res,next){
94 var context = {};
95 mysql.pool.query("SELECT * FROM workouts WHERE id=?", [req.query.id], function(err, result){
96 if(err){
97 next(err);
98 return;
99 }
100 var curVals = result[0];
101 console.log(curVals);
102 mysql.pool.query("UPDATE workouts SET name=?, reps=?, weight=?, date=?, lbs=? WHERE id=? ",
103 [req.body.name || curVals.name, req.body.reps || curVals.reps, req.body.weight || curVals.weight, req.body.date || curVals.date, req.body.lbs || curVals.lbs, req.query.id],
104 function(err, result){
105 if(err){
106 next(err);
107 return;
108 }
109 context.results = "Updated " + result.changedRows + " rows.";
110 res.render('update',context);
111 });
112 });
113 });
114
115 app.use(function(req,res){
116 res.status(404);
117 res.render('404');
118 });
119
120
121 app.use(function(err, req, res, next){
122 console.error(err.stack);
123 res.type('plain/text');
124 res.status(500);
125 res.render('500');
126 });
127
128 app.listen(app.get('port'), function(){
129 console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.');
130 });