Node response.setHeader() Method
Last Updated : 15 Apr, 2025
The response.setHeader() method in Node.js is used to set HTTP headers for a response. It allows you to define one or more headers for the HTTP response sent by the server. If a header with the same name already exists, its value will be replaced. Additionally, headers can be set as an array of values, especially useful for headers like Set-Cookie, which may require multiple values.
Syntax
response.setHeader(name, value)
Parameters: This property accepts a single parameter as mentioned above and described below:
- name <String>: It accepts the name of the header and it is case-insensitive.
- value <any>: It can accept any values like objects, string, integer, Array, etc.
Return Value: This method does not return any value. It simply sets the header as described.
Example 1: In this example, we set a few headers and retrieve them using response.getHeader().
javascript // Importing the http module const http = require("http"); // Setting up PORT const PORT = process.env.PORT || 3000; // Creating HTTP server const httpServer = http.createServer((request, response) => { // Setting up headers response.setHeader("Content-Type", "text/html"); response.setHeader( "Set-Cookie", [ "type=ninja", "language=javascript" ]); // Retrieving headers console.log("When Header is set as a string:", response.getHeader("Content-Type")); console.log("When Header is set as an Array:", response.getHeader("Set-Cookie")); // Printing all set headers const headers = response.getHeaders(); console.log(headers); // Sending response response.writeHead(200); response.end("ok"); }); // Listening to the HTTP server httpServer.listen(PORT, () => { console.log(`Server is running at port ${PORT}...`); });
Output: Now run http://localhost:3000/ in the browser.
Server is running at port 3000...
When Header is set as a string: text/html
When Header is set as an Array: ['type=ninja', 'language=javascript']
[Object: null prototype]
{ 'content-type': 'text/html', 'set-cookie': ['type=ninja', 'language=javascript']}
Example 2: In this example, various types of headers (string, empty string, number, and array) are set and retrieved.
JavaScript // Importing the http module const http = require("http"); // Setting up PORT const PORT = process.env.PORT || 3000; // Creating HTTP server const httpServer = http.createServer((req, response) => { // Setting different headers response.setHeader("Alfa", "Beta"); response.setHeader("Alfa1", ""); response.setHeader("Alfa2", 5); response.setHeader("Cookie-Setup", [ "Alfa=Beta", "Beta=Romeo" ]); // Retrieving specific headers console.log("When Header is set as an Array:", response.getHeader("Cookie-Setup")); console.log("When Header is set as 'Beta':", response.getHeader("Alfa")); console.log("When Header is set as '':", response.getHeader("Alfa1")); console.log("When Header is set as number 5:", response.getHeader("Alfa2")); console.log("When Header is not set:", response.getHeader("Content-Type")); // Printing all headers const headers = response.getHeaders(); console.log(headers); // Sending response to the browser var Output = "Hello Geeksforgeeks..., Available headers are:" + JSON.stringify(headers); response.write(Output); response.end("ok"); }); // Listening to the HTTP server httpServer.listen(PORT, () => { console.log("Server is running at port 3000..."); });
Output:
Server is running at port 3000...
When Header is set as an Array: [ 'Alfa=Beta', 'Beta=Romeo' ]
When Header is set as 'Beta': Beta
When Header is set as '':
When Header is set as number 5: 5
When Header is not set: undefined
[Object: null prototype] {
alfa: 'Beta',
alfa1: '',
alfa2: 5,
'cookie-setup': ['Alfa=Beta', 'Beta=Romeo']
}
Output: Now run http://localhost:3000/ in the browser.
Hello Geeksforgeeks..., Available headers are:
{"alfa":"Beta", "alfa1":"", "alfa2":5, "cookie-setup":["Alfa=Beta", "Beta=Romeo"]}ok
Conclusion
The response.setHeader() method in Node.js is a useful way to set HTTP headers for a response. It allows you to add or modify headers before sending the response. For most use cases, it’s better to use setHeader() for progressively adding headers, rather than using writeHead() immediately, as it gives you more flexibility and control over the headers.