El método response.setHeader(name, value) (Agregado en v0.4.0) es una interfaz de programación de aplicaciones incorporada del módulo ‘ http ‘ que establece un valor de encabezado único para los encabezados implícitos. Si este encabezado ya existe en los encabezados a enviar, se reemplazará su valor. Use una array de strings aquí para enviar múltiples encabezados con el mismo nombre. Los valores que no sean strings se almacenarán sin modificaciones. Por lo tanto, response.getHeader() puede devolver valores que no sean strings. Sin embargo, los valores que no son strings se convertirán en strings para la transmisión de red.
Cuando los encabezados se han establecido con response.setHeader() , se fusionarán con cualquier encabezado pasado a response.writeHead() , con los encabezados pasados a response.writeHead() con prioridad.
Para obtener una respuesta y un resultado adecuado, necesitamos importar el módulo ‘http’.
Sintaxis:
const http = require('http');
Sintaxis:
response.setHeader(name, value)
Parámetros: esta propiedad acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- name < String > : Acepta el nombre de la cabecera y no distingue entre mayúsculas y minúsculas.
- valor < cualquiera > : puede aceptar cualquier valor como objetos, string, entero, array, etc.
Valor devuelto: no devuelve ningún valor, sino que establece un encabezado como se describe a continuación.
El siguiente ejemplo ilustra el uso de la propiedad response.setHeader() en Node.js.
Ejemplo 1: Nombre de archivo: index.js
// Node.js program to demonstrate the // response.setHeaders() Method // Importing http module var http = require('http'); // Setting up PORT const PORT = process.env.PORT || 3000; // Creating http Server var httpServer = http.createServer( function(request, response) { // Setting up Headers response.setHeader('Content-Type', 'text/html'); response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']); // Checking and printing the headers console.log("When Header is set a string:", response.getHeader('Content-Type')); console.log("When Header is set an Array:", response.getHeader('Set-Cookie')); // Getting the set Headers const headers = response.getHeaders(); // Printing those headers console.log(headers); // Prints Output on the browser in response response.writeHead(200, { 'Content-Type': 'text/plain' }); response.end('ok'); }); // Listening to http Server httpServer.listen(PORT, () => { console.log("Server is running at port 3000..."); });
Ahora ejecute http://localhost:3000/ en el navegador.
Producción:
en consola
>> El servidor se está ejecutando en el puerto 3000…
>> Cuando el encabezado se establece en una string: texto/html
>> Cuando el encabezado se establece en una array: [‘type=ninja’, ‘language=javascript’]
>> [Objeto: prototipo nulo] { ‘tipo de contenido’: ‘text/html’, ‘set-cookie’: [‘tipo=ninja’, ‘idioma=javascript’]}
Ejemplo 2: Nombre de archivo: index.js
// Node.js program to demonstrate the // response.setHeaders() Method // Importing http module var http = require('http'); // Setting up PORT const PORT = process.env.PORT || 3000; // Creating http Server var httpServer = http.createServer( function(req, response) { // Setting up Headers response.setHeader('Alfa', 'Beta'); response.setHeader('Alfa1', ''); response.setHeader('Alfa2', 5); response.setHeader('Cookie-Setup', ['Alfa=Beta', 'Beta=Romeo']); // response.setHeader('', 'Beta'); // Throws Error // response.setHeader(); // Throws Error // Checking and printing the headers console.log("When Header is set an Array:", response.getHeader('Cookie-Setup')); console.log("When Header is set an 'Beta':", response.getHeader('Alfa')); console.log("When Header is set '':", response.getHeader('Alfa1')); console.log("When Header is set number 5:", response.getHeader('alfa2')); console.log("When Header is not set:", response.getHeader('Content-Type')); // Getting the set Headers const headers = response.getHeaders(); // Printing those headers console.log(headers); var Output = "Hello Geeksforgeeks..., " + "Available headers are:" + JSON.stringify(headers); // Prints Output on the browser in response response.write(Output); response.end('ok'); }); // Listening to http Server httpServer.listen(PORT, () => { console.log("Server is running at port 3000..."); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Salida: En Consola
El servidor se está ejecutando en el puerto 3000…
Cuando el encabezado se establece en una array: [‘Alfa=Beta’, ‘Beta=Romeo’]
Cuando el encabezado se establece como ‘Beta’: Beta
Cuando se establece el encabezado ”:
Cuando el encabezado se establece en el número 5: 5
Cuando el encabezado no está configurado: indefinido
[Objeto: prototipo nulo] {
alfa: ‘Beta’,
alfa1: ”,
alfa2: 5,
‘configuración de cookies’: [ ‘Alfa=Beta’, ‘Beta=Romeo’ ]}
Ahora ejecute http://localhost:3000/ en el navegador.
Salida: En el navegador
Hola Geeksforgeeks…, Los encabezados disponibles son:{“alfa”:”Beta”, “alfa1″:””, “alfa2”:5, “cookie-setup”:[“Alfa=Beta”, “Beta=Romeo”]} OK
Si se llama al método response.writeHead() y no se ha llamado a este método, escribirá directamente los valores de encabezado proporcionados en el canal de red sin almacenar en caché internamente, y response.getHeader() en el encabezado no producirá el resultado esperado. Si se desea una población progresiva de encabezados con posible recuperación y modificación en el futuro, use response.setHeader() en lugar de response.writeHead() .
Referencia: https://nodejs.org/api/http.html#http_response_setheader_name_value
Publicación traducida automáticamente
Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA