-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
105 lines (90 loc) · 3.41 KB
/
server.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
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
// server.js
// where your node app starts
// init project
var express = require('express');
// setup a new database
// persisted using async file storage
// Security note: the database is saved to the file `db.json` on the local filesystem.
// It's deliberately placed in the `.data` directory which doesn't get copied if someone remixes the project.
var low = require('lowdb')
//var FileSync = require('lowdb/adapters/FileSync')
//var adapter = new FileSync('.data/balderdashdb.json')
var Memory = require('lowdb/adapters/Memory')
var adapter = new Memory()
var db = low(adapter)
var app = express();
// default answer list
db.defaults({ answers: [], questions: []}).write();
// http://expressjs.com/en/starter/static-files.html
app.use(express.static('public'));
// http://expressjs.com/en/starter/basic-routing.html
app.get("/", function (request, response) {
response.sendFile(__dirname + '/views/index.html');
});
app.get("/answers", function (request, response) {
var dbAnswers=[];
if (hideAnswers === false) {
var answers = db.get('answers').value() // Find all answers in the collection
answers.forEach(function(answer) {
dbAnswers.push([answer.answer]); // adds their info to the dbAnswers value
});
}
response.send(dbAnswers); // sends dbAnswers back to the page
});
app.get("/questions", function (request, response) {
var dbQuestions=[];
var questions = db.get('questions').value() // Find all answers in the collection
questions.forEach(function(question) {
dbQuestions.push([question.number,question.question]); // adds their info to the dbQuestions value
});
response.send(dbQuestions); // sends dbAnswers back to the page
});
app.get("/adminanswers", function (request, response) {
var dbAnswers=[];
var answers = db.get('answers').value() // Find all answers in the collection
answers.forEach(function(answer) {
dbAnswers.push([answer.name,answer.answer]); // adds their info to the dbAnswers value
});
response.send(dbAnswers); // sends dbAnswers back to the page
});
// creates a new entry in the answers collection with the submitted values
app.post("/answers", function (request, response) {
db.get('answers')
.push({ name: request.query.name, answer: request.query.answer })
.write()
console.log("New answer inserted in the database");
response.sendStatus(200);
});
// shows answers
app.get("/showanswers", function(request, response) {
//NEW
hideAnswers = false;
response.redirect("/admin.html");
});
// creates a new entry in the questions collection with the submitted values
app.post("/questions", function (request, response) {
db.get('questions') .remove() .write()
db.get('answers') .remove() .write()
db.get('questions')
.push({ number: request.query.number, question: request.query.question })
.write()
console.log("New question inserted in the database");
response.sendStatus(200);
});
// removes all entries from the collection
app.get("/clear", function (request, response) {
hideAnswers = true;
// removes all entries from the collection
db.get('answers')
.remove()
.write()
db.get('questions')
.remove()
.write()
console.log("Database cleared");
response.redirect("/admin.html");
});
// listen for requests :)
var listener = app.listen(process.env.PORT, function () {
console.log('Your app is listening on port ' + listener.address().port);
});