@@ -24,27 +24,30 @@ const notificationRouter = require('./app/routes/notification')
24
24
const proposalRouter = require ( './app/routes/proposal' )
25
25
const app = express ( )
26
26
const server = require ( 'http' ) . Server ( app )
27
- server . listen ( process . env . SOCKET_PORT || 8810 )
27
+ if ( process . env . NODE_ENV !== 'testing' ) {
28
+ server . listen ( process . env . SOCKET_PORT || 8810 )
29
+ }
28
30
// WARNING: app.listen(80) will NOT work here!
29
31
const io = socket . listen ( server )
30
32
31
33
class ServerBuilder {
32
34
constructor ( ) {
33
- this . initDB ( )
34
- this . initMiddleware ( )
35
- this . initViewEngine ( )
36
- this . initLogger ( )
37
- this . initSocket ( )
38
- this . initRouter ( )
39
- this . initErrorHandler ( )
35
+ this . # initDB( )
36
+ this . # initMiddleware( )
37
+ this . # initViewEngine( )
38
+ this . # initLogger( )
39
+ this . # initSocket( )
40
+ this . # initRouter( )
41
+ this . # initErrorHandler( )
40
42
}
41
43
42
- initDB ( ) {
43
- const db = new Connection ( ) . getInstance ( )
44
- db . connect ( )
44
+ // PRIVATE METHOD (ES6)
45
+ #initDB = async ( ) => {
46
+ await Connection . connect ( )
45
47
}
46
48
47
- initMiddleware ( ) {
49
+ // PRIVATE METHOD (ES6)
50
+ #initMiddleware = ( ) => {
48
51
app . use ( cors ( ) )
49
52
50
53
app . use ( bodyParser . json ( { limit : '200mb' } ) )
@@ -59,13 +62,15 @@ class ServerBuilder {
59
62
app . use ( cookieParser ( ) )
60
63
}
61
64
62
- initViewEngine ( ) {
65
+ // PRIVATE METHOD (ES6)
66
+ #initViewEngine = ( ) => {
63
67
// view engine setup
64
68
app . set ( 'views' , path . join ( __dirname , 'views' ) )
65
69
app . set ( 'view engine' , 'ejs' )
66
70
}
67
71
68
- initLogger ( ) {
72
+ // PRIVATE METHOD (ES6)
73
+ #initLogger = ( ) => {
69
74
morgan . token ( 'data' , ( req , res ) => {
70
75
return JSON . stringify ( req . body )
71
76
} )
@@ -78,7 +83,8 @@ class ServerBuilder {
78
83
)
79
84
}
80
85
81
- initSocket ( ) {
86
+ // PRIVATE METHOD (ES6)
87
+ #initSocket = ( ) => {
82
88
let count = 0
83
89
io . on ( 'connection' , ( socket ) => {
84
90
console . log ( 'socket connected count ' , count ++ )
@@ -91,7 +97,8 @@ class ServerBuilder {
91
97
} )
92
98
}
93
99
94
- initRouter ( ) {
100
+ // PRIVATE METHOD (ES6)
101
+ #initRouter = ( ) => {
95
102
app . use ( '/notification' , notificationRouter )
96
103
app . use ( '/' , indexRouter )
97
104
app . use ( '/auth' , authRouter )
@@ -105,7 +112,8 @@ class ServerBuilder {
105
112
app . use ( '/proposal' , proposalRouter )
106
113
}
107
114
108
- initErrorHandler ( ) {
115
+ // PRIVATE METHOD (ES6)
116
+ #initErrorHandler = ( ) => {
109
117
// catch 404 and forward to error handler
110
118
app . use ( function ( req , res , next ) {
111
119
next ( createError ( 404 , "route doesn't exist" ) )
@@ -134,8 +142,11 @@ class ServerBuilder {
134
142
next ( )
135
143
} )
136
144
}
145
+ static startServer ( ) {
146
+ return new ServerBuilder ( )
147
+ }
137
148
}
138
149
139
- // ANONYMOUS OBJECT
140
- new ServerBuilder ( )
150
+ // STATIC METHOD CALLED
151
+ ServerBuilder . startServer ( )
141
152
module . exports = { app, io }
0 commit comments