-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
88 lines (76 loc) · 2.37 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
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var app = express();
// mongoose.connect('mongodb://localhost/holycow');
mongoose.connect('mongodb://heroku_9n0n2rnd:[email protected]:41394/heroku_9n0n2rnd');
//mongodb://heroku_9n0n2rnd:[email protected]:41394/heroku_9n0n2rnd
var scoreSchema = new mongoose.Schema({
score: Number,
timeChallenge: Number,
timePlayed: Number,
comment: 'string',
accuracy: Number,
createdOn: {type: Date},
tally: JSON
});
scoreSchema.pre('save', function (next) {
now = new Date();
if (!this.createdOn) {
this.createdOn = now;
}
this.id = this._id;
next();
});
var ScoreModel = mongoose.model('score', scoreSchema);
var oneDay = 86400000;
app.use(express.compress());
app.use(express.static(process.cwd() + '/app', {maxAge: oneDay}));
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
res.header("Access-Control-Allow-Origin", "*");
next();
});
app.use(bodyParser.json());
var dirUrl = process.cwd() + '/app';
app.post('/api/save', function (req, res) {
console.log('received request for a saving a score :' + JSON.stringify(req.body));
var data = req.body;
var score = new ScoreModel(data);
score.save(data, function (err, docs) {
if (err) {
res.status(500);
res.json({
status: false,
error: err
})
} else {
res.status(201);
res.json({
status: true,
data: docs
})
}
})
});
app.get('/api/scores', function (req, res) {
console.log('received request for a fetching scores');
ScoreModel.find({}, null, {sort: {score: -1}},function (err, docs) {
if (err) {
res.status(500);
res.send({status: false, error: err});
}
else {
res.status(200);
res.send({status: true, data: docs});
}
});
});
var port = process.env.PORT || 3000;
app.listen(port, function (err) {
if (err)
console.error(err)
else
console.log('App is ready at : ' + port)
})