Open In App

Node response.setHeader() Method

Last Updated : 15 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

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.



Next Article

Similar Reads