-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathserver.js
127 lines (111 loc) · 3.05 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var express = require("express")
var app = express()
var db = require("./database.js")
var md5 = require("md5")
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var HTTP_PORT = 8000
// Start server
app.listen(HTTP_PORT, () => {
console.log("Server running on port %PORT%".replace("%PORT%",HTTP_PORT))
});
app.get("/api/users", (req, res, next) => {
var sql = "select * from user"
var params = []
db.all(sql, params, (err, rows) => {
if (err) {
res.status(400).json({"error":err.message});
return;
}
res.json({
"message":"success",
"data":rows
})
});
});
app.get("/api/user/:id", (req, res, next) => {
var sql = "select * from user where id = ?"
var params = [req.params.id]
db.get(sql, params, (err, row) => {
if (err) {
res.status(400).json({"error":err.message});
return;
}
res.json({
"message":"success",
"data":row
})
});
});
app.post("/api/user/", (req, res, next) => {
var errors=[]
if (!req.body.password){
errors.push("No password specified");
}
if (!req.body.email){
errors.push("No email specified");
}
if (errors.length){
res.status(400).json({"error":errors.join(",")});
return;
}
var data = {
name: req.body.name,
email: req.body.email,
password : md5(req.body.password)
}
var sql ='INSERT INTO user (name, email, password) VALUES (?,?,?)'
var params =[data.name, data.email, data.password]
db.run(sql, params, function (err, result) {
if (err){
res.status(400).json({"error": err.message})
return;
}
res.json({
"message": "success",
"data": data,
"id" : this.lastID
})
});
})
app.patch("/api/user/:id", (req, res, next) => {
var data = {
name: req.body.name,
email: req.body.email,
password : req.body.password ? md5(req.body.password) : undefined
}
db.run(
`UPDATE user set
name = coalesce(?,name),
email = COALESCE(?,email),
password = coalesce(?,password)
WHERE id = ?`,
[data.name, data.email, data.password, req.params.id],
(err, result) => {
if (err){
res.status(400).json({"error": res.message})
return;
}
res.json({
message: "success",
data: data
})
});
})
app.delete("/api/user/:id", (req, res, next) => {
db.run(
'DELETE FROM user WHERE id = ?',
req.params.id,
function (err, result) {
if (err){
res.status(400).json({"error": res.message})
return;
}
res.json({"message":"deleted", rows: this.changes})
});
})
// Root path
app.get("/", (req, res, next) => {
res.json({"message":"Ok"})
});