@@ -34,6 +34,7 @@ module.exports = {
34
34
35
35
const kReq = Symbol ( 'req' )
36
36
const kRes = Symbol ( 'res' )
37
+ const kSelf = Symbol ( 'self' )
37
38
const kProxyCallback = Symbol ( 'callback' )
38
39
const kProxyReq = Symbol ( 'proxyReq' )
39
40
const kProxyRes = Symbol ( 'proxyRes' )
@@ -70,6 +71,7 @@ function proxy (req, res, head, {
70
71
req [ kRes ] = res
71
72
}
72
73
74
+ res [ kSelf ] = this
73
75
res [ kReq ] = req
74
76
res [ kRes ] = res
75
77
res [ kProxyCallback ] = callback
@@ -138,7 +140,7 @@ function proxy (req, res, head, {
138
140
let proxyReq
139
141
140
142
if ( onReq ) {
141
- proxyReq = onReq ( req , options )
143
+ proxyReq = onReq . call ( res [ kSelf ] , req , options )
142
144
}
143
145
144
146
if ( ! proxyReq ) {
@@ -213,7 +215,7 @@ function onFinish (err, statusCode = 500) {
213
215
}
214
216
215
217
if ( res [ kProxyCallback ] ) {
216
- res [ kProxyCallback ] . call ( null , err , res [ kReq ] , res )
218
+ res [ kProxyCallback ] . call ( res [ kSelf ] , err , res [ kReq ] , res )
217
219
res [ kProxyCallback ] = null
218
220
}
219
221
@@ -265,7 +267,7 @@ function onProxyResponse (proxyRes) {
265
267
proxyRes . headers [ HTTP2_HEADER_STATUS ] = proxyRes . statusCode || proxyRes . status
266
268
267
269
if ( this [ kOnProxyRes ] ) {
268
- this [ kOnProxyRes ] ( this [ kReq ] , proxyRes . headers )
270
+ this [ kOnProxyRes ] . call ( res [ kSelf ] , this [ kReq ] , proxyRes . headers )
269
271
}
270
272
271
273
res . respond ( proxyRes . headers , RESPOND_OPTIONS )
@@ -276,7 +278,7 @@ function onProxyResponse (proxyRes) {
276
278
}
277
279
278
280
if ( this [ kOnProxyRes ] ) {
279
- this [ kOnProxyRes ] ( this [ kReq ] , res )
281
+ this [ kOnProxyRes ] . call ( res [ kSelf ] , this [ kReq ] , res )
280
282
}
281
283
282
284
res . writeHead ( res . statusCode )
0 commit comments