What is the difference between res.setHeader and res.header. Which one should be used for enabling CORS? In some pages res.header is used and some pages res.setHeader is used for CORS.
setHeader(name, value) (Added in v0. 4.0) method is an inbuilt application programming interface of the 'http' module which sets a single header value for implicit headers. If this header already exists in the to-be-sent headers, its value will be replaced.
The difference between setHeader and writeHead is that setHeader sets one header at a time, and you can use as many setHeader methods as you need before you send the response.
res. end() will end the response process. This method actually comes from Node core, specifically the response. end() method of http. ServerResponse .
writeHead() (Added in v1.. 0) property is an inbuilt property of the 'http' module which sends a response header to the request. The status code is a 3-digit HTTP status code, like 404. The last argument, headers, are the response headers.
res.setHeader()
is a native method of Node.js and res.header()
is an alias of res.set()
method from Express framework.
Documentation:
res.setHeader()
,res.set()
This two methods do exactly the same thing, set the headers HTTP response. The only difference is res.setHeader()
allows you only to set a singular header and res.header()
will allow you to set multiple headers.
So use the one fit with your needs.
Perhaps an example can clarify more:
// single field is set
res.setHeader('content-type', 'application/json');
// multiple files can be set
res.set({
'content-type': 'application/json',
'content-length': '100',
'warning': "with content type charset encoding will be added by default"
});
Addition to high-voting answers, set
is alias header
which calls setHeader
to set a header. here is the source code:
res.set =
res.header = function header(field, val) {
if (arguments.length === 2) {
var value = Array.isArray(val)
? val.map(String)
: String(val);
// add charset to content-type
if (field.toLowerCase() === 'content-type') {
if (Array.isArray(value)) {
throw new TypeError('Content-Type cannot be set to an Array');
}
if (!charsetRegExp.test(value)) {
var charset = mime.charsets.lookup(value.split(';')[0]);
if (charset) value += '; charset=' + charset.toLowerCase();
}
}
this.setHeader(field, value);
} else {
for (var key in field) {
this.set(key, field[key]);
}
}
return this;
};
Also see GitHub here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With