-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
115 lines (100 loc) · 2.77 KB
/
Copy pathserver.js
File metadata and controls
115 lines (100 loc) · 2.77 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
var express = require('express');
var http = require('http');
var morgan = require('morgan');
var connectDB = require('./index').connectDB;
var fs = require("fs");
var ObjectID = require("mongodb").ObjectID;
var app = express();
var db = null;
const port = 5050;
const server= http.createServer(app);
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', '*');
next();
});
app.use(morgan("dev"));
const TEMPLATE_DIR = __dirname + "/templates/";
const STATIC_DIR = __dirname + "/static/";
function respond(res, data, status_code = 200) {
res.json({
code: status_code,
data: data,
message: status_code == 200 ? "Success" : "Error"
});
}
function render(res, template) {
fs.readFile(TEMPLATE_DIR + template, "utf8", function(err, result) {
// console.log(err, res);
if (err) {
return res.send(err);
}
res.send(result);
});
}
app.get("/static/:filename", function(req, res){
var filename = req.params.filename;
fs.readFile(STATIC_DIR + filename, "utf8", function(err, result) {
// console.log(err, res);
if (err) {
return res.send(err);
}
let fsplits = filename.split(".");
let extension = fsplits[fsplits.length - 1];
if(extension == "js") {
res.set('Content-Type', 'text/javascript');
} else if (extension == "css") {
res.set('Content-Type', 'text/css');
}
res.send(result);
});
});
app.get("/preschool/list", function(req, res){
return render(res, "list.html")
});
app.get("/preschool/details/:id", function(req, res){
return render(res, "details.html")
});
app.get("/preschool", function(req, res) {
let page = req.query.page || 1;
let limit = req.query.limit || 30;
let skip = (page - 1) * limit;
console.log(skip, limit);
let cursor = db.collection('preschool').find({}).skip(skip).limit(limit);
cursor.toArray((err, result) => {
if(err) {
return respond(res, "Some error occured", 500);
}
respond(res, result);
});
});
app.get("/preschool/:id", function(req, res) {
let cursor = db.collection('preschool').find({ _id: ObjectID(req.params.id) });
cursor.toArray((err, result) => {
if(err || result.length < 1) {
return respond(res, "Some error occured", 500);
}
respond(res, result[0]);
});
});
app.post("/preschool", function(req, res) {
});
app.post("/preschool/:id", function(req, res) {
});
if(!module.parent) {
connectDB((client) => {
if(!client) {
console.log("error");
process.exit();
}
db = client.db("education");
server.listen(port, (err) => {
if (err) {
console.log(err);
process.exit();
}
return console.log(`server is listening on ${port}`)
});
});
}