@@ -112,6 +112,7 @@ exports.getMaxSockets = function () {
112
112
exports . setMaxSockets = function ( value ) {
113
113
maxSockets = value ;
114
114
} ;
115
+
115
116
//
116
117
// stack
117
118
// adapted from https://github.com/creationix/stack
@@ -122,15 +123,16 @@ function stack (middlewares, proxy) {
122
123
middlewares . reverse ( ) . forEach ( function ( layer ) {
123
124
124
125
var child = handle ;
125
- var next = function ( err ) {
126
- if ( err ) {
127
- throw err ;
128
- //return error(req, res, err);
129
- }
130
- child ( req , res ) ;
131
- }
132
- next . __proto__ = proxy ;
133
126
handle = function ( req , res ) {
127
+ var next = function ( err ) {
128
+ if ( err ) {
129
+ throw err ;
130
+ //TODO: figure out where to send errors.
131
+ //return error(req, res, err);
132
+ }
133
+ child ( req , res ) ;
134
+ }
135
+ next . __proto__ = proxy ;
134
136
layer ( req , res , next ) ;
135
137
} ;
136
138
} ) ;
@@ -167,11 +169,6 @@ exports.createServer = function () {
167
169
168
170
var proxy = new HttpProxy ( options ) ;
169
171
170
- if ( middleware . length )
171
- //handler = callback = middleware.shift()
172
- //else if (middleware.length)
173
- handler = callback = stack ( middleware , proxy ) ;
174
-
175
172
if ( port && host ) {
176
173
//
177
174
// If we have a target host and port for the request
@@ -183,6 +180,8 @@ exports.createServer = function () {
183
180
host : host
184
181
} ) ;
185
182
}
183
+ if ( middleware . length )
184
+ middleware . push ( handler )
186
185
}
187
186
else if ( proxy . proxyTable ) {
188
187
//
@@ -192,13 +191,21 @@ exports.createServer = function () {
192
191
handler = function ( req , res ) {
193
192
proxy . proxyRequest ( req , res ) ;
194
193
}
194
+ if ( middleware . length )
195
+ middleware . push ( handler )
195
196
}
196
- else if ( ! handler ) {
197
- //
198
- // Otherwise this server is improperly configured.
199
- //
200
- throw new Error ( 'Cannot proxy without port, host, or router.' )
201
- }
197
+
198
+ if ( middleware . length )
199
+ //handler = callback = middleware.shift()
200
+ //else if (middleware.length)
201
+ handler = callback = stack ( middleware , proxy ) ;
202
+
203
+ if ( ! handler ) {
204
+ //
205
+ // Otherwise this server is improperly configured.
206
+ //
207
+ throw new Error ( 'Cannot proxy without port, host, or router.' )
208
+ }
202
209
203
210
server = options . https
204
211
? https . createServer ( options . https , handler )
0 commit comments