-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
138 lines (126 loc) · 3.63 KB
/
index.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
127
128
129
130
131
132
133
134
135
136
137
138
const express = require('express');
const app = express();
const log = require('./utils');
const fs = require('fs');
const bodyParser = require('body-parser');
// 解析 form-data
const multer = require('multer');
const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017/todosDb';
// 全局变量
let i = 0;
// Express托管静态文件
app.use(express.static('./public'));
// 读取 html 文件的函数
const template = (name) => {
const path = './templates/' + name;
const options = {
encoding: 'utf8'
};
const content = fs.readFileSync(path, options);
return content
};
app.get('/', (req, res) => {
res.set('Content-Type', 'text/html');
let body = template('./todo.html');
res.send(body);
res.end()
});
// body-parser 需写在路由外面
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(bodyParser.json()); // for parsing application/json
app.post('/add', (req, res) => {
// app.use(multer()); // for parsing multipart/form-data
// 解析收到的请求数据
let body = req.body;
let item = body.item
// 将要存储的数据
let todo = {
item: item,
id: i,
done: false
};
// id自加一
i++;
// 将数据存入数据库中
MongoClient.connect(url, (error, db) => {
const collection = db.collection('todosDb');
collection.insertOne(todo, (error, result) => {
let r = result.ops[0]
res.send(r)
})
})
// 读取数据,显示到页面上
});
app.post('/delete', (req, res) => {
// app.use(multer()); // for parsing multipart/form-data
// 解析收到的请求数据
let body = req.body;
let item = body.item
let id = JSON.parse(body.id)
// 将要存储的数据
let todo = {
id: id
};
// 将数据存入数据库中
MongoClient.connect(url, (error, db) => {
const collection = db.collection('todosDb');
collection.deleteOne(todo, (error, result) => {
res.send('删除成功')
})
})
});
app.post('/edit', (req, res) => {
let body = req.body
let id = JSON.parse(body.id)
let item = body.item
// 将要存查找的数据
let todo = {
id: id
};
let form = {
$set: {
item: item,
}
};
// 在数据库中查找数据
MongoClient.connect(url, (error, db) => {
const collection = db.collection('todosDb');
collection.updateOne(todo, form, (error, result) => {
res.send('修改成功')
})
})
});
app.get('/get', (req, res) => {
// 在数据库中查找数据
MongoClient.connect(url, (error, db) => {
const collection = db.collection('todosDb');
collection.find().toArray((error, result) => {
log('get: result\n', result)
res.send(result)
})
})
});
app.post('/finish', (req, res) => {
let body = req.body
let id = JSON.parse(body.id)
let done = JSON.parse(body.done)
// 将要存查找的数据
let todo = {
id: id
};
// 在数据库中查找数据
// db.users.update({username: 'smith'}, {$set: {country: 'Canada'}})
MongoClient.connect(url, (error, db) => {
const collection = db.collection('todosDb');
collection.updateOne(todo, {$set: {done: done}}, (error, result) => {
log(result)
res.send('完成状态修改成功')
})
})
});
const server = app.listen(3001, () => {
const host = server.address().address;
const port = server.address().port;
log(`http://${host}:${port}`);
});