| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 2677fe9 commit ad39b37
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1587,13 +1587,17 @@ added: v0.4.0 | |||
| 1587 | 1587 | ||
| 1588 | 1588 | * `name` {string} | |
| 1589 | 1589 | * `value` {any} | |
| 1590 | + * Returns: {http.ServerResponse} | ||
| 1591 | + | ||
| 1592 | + Returns the response object. | ||
| 1590 | 1593 | ||
| 1591 | 1594 | Sets a single header value for implicit headers. If this header already exists | |
| 1592 | 1595 | in the to-be-sent headers, its value will be replaced. Use an array of strings | |
| 1593 | 1596 | here to send multiple headers with the same name. Non-string values will be | |
| 1594 | 1597 | stored without modification. Therefore, [`response.getHeader()`][] may return | |
| 1595 | 1598 | non-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. | ||
| 1597 | 1601 | ||
| 1598 | 1602 | ```js | |
| 1599 | 1603 | response.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) { | |||
| 565 | 565 | this[kOutHeaders] = headers = ObjectCreate(null); | |
| 566 | 566 | ||
| 567 | 567 | headers[name.toLowerCase()] = [name, value]; | |
| 568 | + return this; | ||
| 568 | 569 | }; | |
| 569 | 570 | ||
| 570 | 571 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,29 @@ | |||
| 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 | + }); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments