File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed
Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -1587,13 +1587,17 @@ added: v0.4.0
15871587
15881588* `name` {string}
15891589* `value` {any}
1590+ * Returns: {http.ServerResponse}
1591+
1592+ Returns the response object.
15901593
15911594Sets a single header value for implicit headers. If this header already exists
15921595in the to-be-sent headers, its value will be replaced. Use an array of strings
15931596here to send multiple headers with the same name. Non-string values will be
15941597stored without modification. Therefore, [`response.getHeader()`][] may return
15951598non-string values. However, the non-string values will be converted to strings
1596- for network transmission.
1599+ for network transmission. The same response object is returned to the caller,
1600+ to enable call chaining.
15971601
15981602```js
15991603response.setHeader('Content-Type', 'text/html');
Original file line number Diff line number Diff line change @@ -565,6 +565,7 @@ OutgoingMessage.prototype.setHeader = function setHeader(name, value) {
565565 this[kOutHeaders] = headers = ObjectCreate(null);
566566
567567 headers[name.toLowerCase()] = [name, value];
568+ return this;
568569};
569570
570571
Original file line number Diff line number Diff line change 1+ 'use strict';
2+ const common = require('../common');
3+ const http = require('http');
4+ const assert = require('assert');
5+ const expected = {
6+ '__proto__': null,
7+ 'testheader1': 'foo',
8+ 'testheader2': 'bar',
9+ 'testheader3': 'xyz'
10+ };
11+ const server = http.createServer(common.mustCall((req, res) => {
12+ let retval = res.setHeader('testheader1', 'foo');
13+
14+ // Test that the setHeader returns the same response object.
15+ assert.strictEqual(retval, res);
16+
17+ retval = res.setHeader('testheader2', 'bar').setHeader('testheader3', 'xyz');
18+ // Test that chaining works for setHeader.
19+ assert.deepStrictEqual(res.getHeaders(), expected);
20+ res.end('ok');
21+ }));
22+ server.listen(0, () => {
23+ http.get({ port: server.address().port }, common.mustCall((res) => {
24+ res.on('data', () => {});
25+ res.on('end', common.mustCall(() => {
26+ server.close();
27+ }));
28+ }));
29+ });
You can’t perform that action at this time.
0 commit comments