Skip to content

Commit 2806151

Browse files
committed
update to v1.1
1 parent 4ca8634 commit 2806151

File tree

14 files changed

+333
-313
lines changed

14 files changed

+333
-313
lines changed

server/app.js

Lines changed: 6 additions & 269 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
const express = require('express')
2-
const app = express()
32
const bodyParser = require('body-parser')
43
const cookieParser = require('cookie-parser')
5-
const UserDataModel = require('./mongo/model')
64
const mongoose = require('mongoose')
75
const session = require('express-session')
86
const MongoStore = require('connect-mongo')(session)
7+
const routers = require('./router')
98

109
// 密码加密
1110
const bcrypt = require('bcrypt')
1211
const uuid = require('uuid/v4')
1312
const SALT_WORK_FACTOR = 10
1413

14+
const app = express()
15+
1516
// 连接远程数据库
1617
const dbUrl = 'mongodb://localhost:27017/test'
1718
// var dbUrl = 'mongodb://mertens:test123@ds037205.mlab.com:37205/mertens-qn'
@@ -32,279 +33,15 @@ app.use(session({
3233
secret: uuid(),
3334
cookie: {
3435
maxAge: 60 * 1000 * 30, // 过期时间(毫秒)
35-
httpOnly: false
36+
httpOnly: true
3637
},
3738
store: new MongoStore({
3839
url: dbUrl,
3940
touchAfter: 30 * 60
4041
})
4142
}));
4243

43-
// 查询用户名
44-
app.get('/getUserName', (req, res) => {
45-
if (req.session.isLogin) {
46-
res.send({
47-
code: 0,
48-
userName: req.session.userInfo.userName
49-
})
50-
} else {
51-
res.send({
52-
code: -1,
53-
msg: '请登录!'
54-
})
55-
}
56-
});
57-
// 查询用户问卷数据
58-
app.get('/getUserQnData', (req, res) => {
59-
if (req.session.isLogin) {
60-
UserDataModel.findOne({ email: req.session.userInfo.userEmail }, { qnData: 1, _id: 0 },
61-
function(err, userData) {
62-
if (err) {
63-
console.log(err)
64-
res.send(err)
65-
}
66-
if (userData === null) {
67-
res.send({
68-
code: -1,
69-
msg: 'No documents found!'
70-
})
71-
} else {
72-
if (!!req.query.qnId) {
73-
for (var i = 0; i < userData.qnData.length; i++) {
74-
if (userData.qnData[i].qnId === req.query.qnId) {
75-
res.send({
76-
code: 1,
77-
msg: `userData'qnId is ${req.query.qnId}`,
78-
data: userData.qnData[i]
79-
})
80-
break
81-
}
82-
}
83-
} else {
84-
res.send({
85-
code: 0,
86-
msg: 'OK',
87-
data: userData.qnData
88-
})
89-
}
90-
}
91-
})
92-
} else {
93-
res.send({
94-
code: -2,
95-
msg: 'Please Login!'
96-
})
97-
}
98-
});
99-
// 批量删除问卷
100-
app.post('/deleteUserQn', (req, res) => {
101-
if (req.session.isLogin) {
102-
if (req.body.qnList) {
103-
var qnList = JSON.parse(req.body.qnList)
104-
var len = qnList.length
105-
var qnDeleted = 0
106-
qnList.forEach(function(qnId) {
107-
UserDataModel.update({ email: req.session.userInfo.userEmail }, { $pull: { "qnData": { "qnId": qnId } } },
108-
function(err) {
109-
if (err) {
110-
res.send({
111-
code: -1,
112-
msg: '问卷 ' + qnId + ' 删除失败!'
113-
})
114-
return console.log(qnId + '删除问卷失败')
115-
}
116-
qnDeleted++
117-
if (qnDeleted === len) {
118-
res.send({
119-
code: 0,
120-
msg: '删除成功!'
121-
})
122-
}
123-
})
124-
})
125-
}
126-
if (req.body.qnId) {
127-
var qnId = req.body.qnId
128-
UserDataModel.update({ email: req.session.userInfo.userEmail }, { $pull: { "qnData": { "qnId": qnId } } },
129-
function(err) {
130-
if (err) {
131-
res.send({
132-
code: -1,
133-
msg: '问卷 ' + qnId + ' 删除失败!'
134-
})
135-
return console.log(qnId + '删除问卷失败')
136-
}
137-
res.send({
138-
code: 1,
139-
msg: '删除成功!'
140-
})
141-
})
142-
}
143-
}
144-
});
145-
// 更新用户问卷数据
146-
app.post('/updateUserQnData', (req, res) => {
147-
if (req.session.isLogin) {
148-
var crtQnData = JSON.parse(req.body.qnData)
149-
var editMode = req.body.editMode
150-
if (editMode === 'modify') {
151-
// 先删除旧的问卷
152-
UserDataModel.update({ email: req.session.userInfo.userEmail }, { $pull: { "qnData": { "qnId": crtQnData.qnId } } },
153-
function(err) {
154-
if (err) return console.log('问卷 ' + qnId + ' 删除失败')
155-
})
156-
// 再插入编辑好的问卷
157-
UserDataModel.update({ email: req.session.userInfo.userEmail }, { $push: { qnData: crtQnData } },
158-
function(err) {
159-
if (err) {
160-
res.send({
161-
code: -3,
162-
msg: '编辑问卷失败'
163-
})
164-
return console.log('编辑问卷失败:', err)
165-
}
166-
res.send({
167-
code: 1,
168-
msg: '编辑问卷成功'
169-
})
170-
console.log('编辑问卷成功')
171-
})
172-
} else {
173-
// 插入新建的问卷
174-
UserDataModel.update({ email: req.session.userInfo.userEmail }, { $push: { qnData: crtQnData } },
175-
function(err) {
176-
if (err) {
177-
res.send({
178-
code: -2,
179-
msg: '新增问卷失败'
180-
})
181-
return console.log('新增问卷失败:', err)
182-
}
183-
res.send({
184-
code: 0,
185-
msg: '新增问卷成功'
186-
})
187-
console.log('新增问卷成功')
188-
})
189-
}
190-
} else {
191-
res.send({
192-
code: -1,
193-
msg: '用户未登陆'
194-
})
195-
}
196-
});
197-
// 通过邮箱查询数据
198-
app.get('/getdatabyemail', (req, res) => {
199-
var email = req.query.email || ''
200-
UserDataModel.findOne({ email: email }, { email: 1, _id: 0 }, function(err, doc) {
201-
if (err) {
202-
console.log(err)
203-
res.send(err)
204-
}
205-
if (doc === null) {
206-
res.send({
207-
code: -1,
208-
msg: 'No documents found!'
209-
})
210-
} else {
211-
res.send({
212-
code: 0,
213-
msg: 'The email already exists!'
214-
})
215-
}
216-
})
217-
});
218-
// 用户注册
219-
app.post('/signup', (req, res) => {
220-
const { signupName, signupEmail, signupPassword } = req.body;
221-
let _userData = new UserDataModel({
222-
name: signupName,
223-
email: signupEmail,
224-
password: signupPassword
225-
});
226-
// 生成 salt
227-
bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
228-
if (err) {
229-
return console.log(err)
230-
}
231-
// 给密码加 salt
232-
bcrypt.hash(signupPassword, salt, function(err, hash) {
233-
if (err) {
234-
return console.log(err)
235-
}
236-
_userData.password = hash
237-
// 保存密码
238-
_userData.save(function(err, results) {
239-
if (err) {
240-
console.log(err)
241-
res.send({
242-
code: -1,
243-
msg: 'Something error!'
244-
})
245-
}
246-
req.session.isLogin = true
247-
req.session.userInfo = {
248-
userName: signupName,
249-
userEmail: signupEmail
250-
}
251-
res.send({
252-
code: 0,
253-
msg: 'The registration is successful!'
254-
})
255-
})
256-
})
257-
})
258-
});
259-
// 用户登录
260-
app.post('/login', (req, res) => {
261-
const { loginEmail, loginPsd } = req.body
262-
UserDataModel.findOne({ email: loginEmail }, {
263-
name: 1,
264-
password: 1,
265-
email: 1
266-
}, function(err, userInfo) {
267-
if (err) {
268-
console.log(err)
269-
}
270-
if (!userInfo) {
271-
res.send({
272-
code: -1,
273-
msg: '用户不存在'
274-
})
275-
return console.log('用户不存在!')
276-
}
277-
userInfo.comparePassword(loginPsd, function(err, isMatch) {
278-
if (err) {
279-
console.log(err)
280-
}
281-
if (isMatch) {
282-
req.session.isLogin = true
283-
req.session.userInfo = {
284-
userName: userInfo.name,
285-
userEmail: userInfo.email
286-
}
287-
console.log(req.session)
288-
res.send({
289-
code: 0,
290-
msg: '登录成功!'
291-
})
292-
} else {
293-
res.send({
294-
code: -2,
295-
msg: '密码错误'
296-
})
297-
}
298-
})
299-
})
300-
});
301-
// 用户登出
302-
app.post('/signout', (req, res) => {
303-
req.session.isLogin = false
304-
res.send({
305-
code: 0,
306-
msg: '登出成功!'
307-
})
308-
});
44+
// 路由设置
45+
routers(app);
30946

31047
module.exports = app

0 commit comments

Comments
 (0)