1
1
const express = require ( 'express' )
2
- const app = express ( )
3
2
const bodyParser = require ( 'body-parser' )
4
3
const cookieParser = require ( 'cookie-parser' )
5
- const UserDataModel = require ( './mongo/model' )
6
4
const mongoose = require ( 'mongoose' )
7
5
const session = require ( 'express-session' )
8
6
const MongoStore = require ( 'connect-mongo' ) ( session )
7
+ const routers = require ( './router' )
9
8
10
9
// 密码加密
11
10
const bcrypt = require ( 'bcrypt' )
12
11
const uuid = require ( 'uuid/v4' )
13
12
const SALT_WORK_FACTOR = 10
14
13
14
+ const app = express ( )
15
+
15
16
// 连接远程数据库
16
17
const dbUrl = 'mongodb://localhost:27017/test'
17
18
// var dbUrl = 'mongodb://mertens:test123@ds037205.mlab.com:37205/mertens-qn'
@@ -32,279 +33,15 @@ app.use(session({
32
33
secret : uuid ( ) ,
33
34
cookie : {
34
35
maxAge : 60 * 1000 * 30 , // 过期时间(毫秒)
35
- httpOnly : false
36
+ httpOnly : true
36
37
} ,
37
38
store : new MongoStore ( {
38
39
url : dbUrl ,
39
40
touchAfter : 30 * 60
40
41
} )
41
42
} ) ) ;
42
43
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 ) ;
309
46
310
47
module . exports = app
0 commit comments