-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
146 lines (91 loc) · 3.86 KB
/
index.js
File metadata and controls
146 lines (91 loc) · 3.86 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
145
146
const express = require('express')
const pool = require('./dbpool')
const app = express();
const executeSQL = (sql, params) => {
return new Promise(function (resolve, reject){
pool.query(sql, params, function(err, rows, field){
if(err) throw err
resolve(rows)
})
})
}
app.set('view engine', 'ejs')
app.use(express.static('public'))
app.use(express.urlencoded({extended: true}))
app.get('/', async (req, res) => {
let sql = "SELECT monsterId, name, imgName, score FROM exam_monsters ORDER BY score DESC limit 5"
let rows = await executeSQL(sql)
res.render('index', {"monsters" : rows})
})
app.get('/listPage', async(req, res) => {
let sql = "SELECT * FROM exam_elements"
const rows = await executeSQL(sql)
let sql1 = "SELECT monsterId, name, moveSet, firstCaught, description, imgName, score, elementId FROM exam_monsters"
let monsters = await executeSQL(sql1)
res.render('listPage', {"pokemonElement" : rows, "monsters" : monsters})
})
app.post('/listPage', async (req, res) => {
let name = req.body.name
let description = req.body.description
let element = req.body.element
let moveSet = req.body.moveSet
let dateCaught = req.body.dateCaught
let imgName = req.body.imgName
let score = req.body.score
let sql = `INSERT INTO exam_monsters(name, moveSet, firstCaught, description, imgName, score, elementId)
VALUES (? , ?, ? , ?, ?, ?, ?)`
let params = [name, moveSet, dateCaught, description, imgName, score, element]
let row = await executeSQL(sql, params)
sql = "SELECT * FROM exam_elements"
row = await executeSQL(sql)
res.render('listPage', {"pokemonElement" : rows , 'message' : "Successfully inserted" })
})
app.get('/pokemon/edit', async (req, res) => {
let monsterId = req.query.id
let sql = `SELECT name, imgName FROM exam_monsters WHERE monsterId = ?`
let params = [monsterId]
let row = await executeSQL(sql, params)
res.render('pokemonEdit', {'pokeData': row, "monsterId": monsterId})
})
app.post('/pokemon/edit', async (req, res) => {
let monsterId = req.body.monsterId
let score = req.body.score
let sql = `UPDATE exam_monsters SET score = ${score} WHERE monsterId = ${monsterId}`
let row = await executeSQL(sql)
sql = `SELECT name, imgName FROM exam_monsters WHERE monsterId = ?`
let params = [monsterId]
row = await executeSQL(sql, params)
res.render('pokemonEdit', {'pokeData': row,"monsterId": monsterId, "message": "Successfully Updated!"})
})
app.get('/pokemonQuiz', async (req, res) => {
let sql = "SELECT monsterId, name, imgName FROM exam_monsters ORDER BY RAND() LIMIT 1 "
let row = await executeSQL(sql)
sql = "SELECT * from exam_elements"
let row2 = await executeSQL(sql)
res.render('pokemonQuiz', {"pokeData": row, "elements" : row2})
})
app.post('/pokemonQuiz', async (req, res) => {
let element = req.body.pokeElement;
let monsterId = req.body.monsterId
let checkAnswerSQL = "SELECT monsterId from exam_monsters WHERE elementId = ? AND monsterId = ?"
let params = [element, monsterId]
let checkAnswer = await executeSQL(checkAnswerSQL, params)
let sql = "SELECT monsterId, name, imgName FROM exam_monsters ORDER BY RAND() LIMIT 1 "
let row = await executeSQL(sql)
sql = "SELECT * from exam_elements"
let row2 = await executeSQL(sql)
if(checkAnswer.length!= 0){
res.render('pokemonQuiz', {"message": "Correct", "pokeData": row, "elements" : row2})
}
})
app.use('/api/monster/:id', async (req, res) =>{
let monsterId = req.params.id
let sql = `SELECT * FROM exam_monsters
WHERE monsterId = ?`
let params = [monsterId]
let rows = await executeSQL(sql, params)
res.send(rows)
})
app.listen(3000, () => {
console.log('Server is listing on PORT 3000')
})