From d8fb34471594f8899013718e77d99c2acbf2c6c9 Mon Sep 17 00:00:00 2001 From: Cole Chamberlain Date: Tue, 13 Sep 2016 15:19:33 -0700 Subject: [PATCH] Fix for Reason-Phrase being overwritten on proxy response. (#1051) * Fix for Reason-Phrase being overwritten on proxy response. Calling res.writeHead has the side effect of defaulting the Reason-Phrase to default ones. I'm using Reason-Phrase codes to sub-route api responses and they were all being reset. This change only sets the statusMessage (Reason-Phrase) if it exists on the proxyRes and is successfully passing it through in my tests. * Fixed spaces and bracket formatting. --- lib/http-proxy/passes/web-outgoing.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/http-proxy/passes/web-outgoing.js b/lib/http-proxy/passes/web-outgoing.js index d8c17a282..b49fbc86b 100644 --- a/lib/http-proxy/passes/web-outgoing.js +++ b/lib/http-proxy/passes/web-outgoing.js @@ -108,7 +108,10 @@ var redirectRegex = /^201|30(1|2|7|8)$/; * @api private */ function writeStatusCode(req, res, proxyRes) { - res.writeHead(proxyRes.statusCode); + res.statusCode = proxyRes.statusCode; + if(proxyRes.statusMessage) { + res.statusMessage = proxyRes.statusMessage; + } } ] // <--