Skip to content

Commit 1443d62

Browse files
Node.js: ServerResponse.flushHeaders() implemented.
This closes #1006 issue on GitHub. Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
1 parent 919cae7 commit 1443d62

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed

docs/changes.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ can be used as a unique request identifier.
3333
</para>
3434
</change>
3535

36+
<change type="feature">
37+
<para>
38+
ServerRequest.flushHeaders() implemented in Node.js module to make it compatible
39+
with Next.js.
40+
</para>
41+
</change>
42+
3643
</changes>
3744

3845

src/nodejs/unit-http/http_server.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ ServerResponse.prototype.removeHeader = function removeHeader(name) {
138138
}
139139
};
140140

141+
ServerResponse.prototype.flushHeaders = function flushHeaders() {
142+
this._sendHeaders();
143+
};
144+
141145
ServerResponse.prototype._removeHeader = function _removeHeader(lc_name) {
142146
let entry = this.headers[lc_name];
143147
let name_len = Buffer.byteLength(entry[0] + "", 'latin1');

test/node/flush_headers/app.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
require('http').createServer(function (req, res) {
3+
res.setHeader('X-Header', 'blah');
4+
res.flushHeaders();
5+
res.flushHeaders(); // Should be idempotent.
6+
res.end();
7+
}).listen(8080);

test/test_node_application.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,10 @@ def test_node_application_get_header_names():
303303
'x-header',
304304
], 'get header names'
305305

306+
def test_node_application_flush_headers():
307+
client.load('flush_headers')
308+
309+
assert client.get()['headers']['X-Header'] == 'blah'
306310

307311
def test_node_application_has_header():
308312
client.load('has_header')

0 commit comments

Comments
 (0)