1
- import { Router , Request , Response } from 'express' ;
2
- import Crowller from './crowller' ;
3
- import DellAnalyzer from './dellAnalyzer' ;
1
+ import { Router , Request , Response , NextFunction } from 'express' ;
2
+ import Crowller from './utils/ crowller' ;
3
+ import DellAnalyzer from './utils/ dellAnalyzer' ;
4
4
import fs from 'fs' ;
5
5
import path from 'path' ;
6
+ import { getResponseData } from './utils/utils'
6
7
7
- const router = Router ( ) ;
8
-
9
- interface RequestWithBody extends Request {
8
+ interface BodyRequest extends Request {
10
9
body : {
11
10
[ key : string ] : string | undefined ;
12
11
}
13
12
}
14
13
15
- router . get ( '/' , ( req : Request , res : Response ) => {
14
+ const router = Router ( ) ;
15
+
16
+ const checkLogin = ( req : Request , res : Response , next : NextFunction ) => {
17
+ const isLogin = req . session ? req . session . login : false ;
18
+ if ( isLogin ) {
19
+ next ( ) ;
20
+ } else {
21
+ res . json ( getResponseData ( null , '请先登录' ) ) ;
22
+ }
23
+ } ;
24
+
25
+ router . get ( '/' , ( req : BodyRequest , res : Response ) => {
16
26
const isLogin = req . session ? req . session . login : undefined ;
17
27
if ( isLogin ) {
18
28
res . send ( `
@@ -39,11 +49,11 @@ router.get('/', (req: Request, res: Response) => {
39
49
40
50
} )
41
51
42
- router . post ( '/login' , ( req : RequestWithBody , res : Response ) => {
52
+ router . post ( '/login' , ( req : BodyRequest , res : Response ) => {
43
53
const { password } = req . body ;
44
54
const isLogin = req . session ? req . session . login : undefined ;
45
55
if ( isLogin ) {
46
- res . send ( '已经登录过' )
56
+ res . json ( getResponseData ( true ) ) ;
47
57
} else {
48
58
if ( password === '123' ) {
49
59
if ( req . session ) {
@@ -53,45 +63,44 @@ router.post('/login', (req: RequestWithBody, res: Response) => {
53
63
} , 2000 )
54
64
}
55
65
} else {
56
- res . send ( '登录失败' )
66
+ res . json ( getResponseData ( false , '登录失败' ) ) ;
57
67
}
58
68
}
59
69
} )
60
70
61
- router . get ( '/logout' , ( req : RequestWithBody , res : Response ) => {
71
+ router . get ( '/logout' , ( req : BodyRequest , res : Response ) => {
62
72
if ( req . session ) {
63
73
req . session . login = undefined ;
64
74
}
65
- res . redirect ( '/' ) ;
66
- // res.send("已经退出了")
75
+ res . json ( getResponseData ( true ) ) ;
67
76
} )
68
77
69
- router . get ( '/getData' , ( req : RequestWithBody , res : Response ) => {
78
+ router . get ( '/getData' , checkLogin , ( req : BodyRequest , res : Response ) => {
70
79
const isLogin = req . session ? req . session . login : false ;
71
80
if ( isLogin ) {
72
81
// 爬虫url:http://www.dell-lee.com/typescript/demo.html?secret=secret
73
82
const secret = 'secretKey' ;
74
83
const url = `http://www.dell-lee.com/typescript/demo.html?secret=${ secret } ` ;
75
84
const anlayzer = DellAnalyzer . getInstance ( ) ;
76
85
new Crowller ( url , anlayzer ) ;
77
- res . send ( 'getData success' )
86
+ res . json ( getResponseData ( "爬取成功" ) ) ;
78
87
} else {
79
- res . send ( '请登录后进行爬取' )
88
+ res . json ( getResponseData ( false , "用户尚未登录,请登录之后进行数据爬取" ) ) ;
80
89
}
81
90
} )
82
91
83
- router . get ( '/showData' , ( req : RequestWithBody , res : Response ) => {
92
+ router . get ( '/showData' , checkLogin , ( req : BodyRequest , res : Response ) => {
84
93
const isLogin = req . session ? req . session . login : false ;
85
94
if ( isLogin ) {
86
95
try {
87
96
const position = path . resolve ( __dirname , '../data/course.json' ) ;
88
97
const result = fs . readFileSync ( position , 'utf-8' ) ;
89
- res . json ( JSON . parse ( result ) ) ;
98
+ res . json ( getResponseData ( JSON . parse ( result ) ) ) ;
90
99
} catch ( e ) {
91
- res . send ( "尚未爬取到数据" )
100
+ res . json ( getResponseData ( false , "暂无数据" ) ) ;
92
101
}
93
102
} else {
94
- res . send ( "用户尚未登录,请登录之后进行数据展示" )
103
+ res . json ( getResponseData ( false , "用户尚未登录,请登录之后进行数据展示" ) ) ;
95
104
}
96
105
} )
97
106
0 commit comments