La propiedad response.writeHead() (agregada en v1..0) es una propiedad incorporada del módulo ‘http’ que envía un encabezado de respuesta a la solicitud. El código de estado es un código de estado HTTP de 3 dígitos , como 404. El último argumento, los encabezados, son los encabezados de respuesta. Opcionalmente, se puede dar un mensaje de estado legible por humanos como segundo argumento.
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. Si se llama a este método y no se ha llamado a response.setHeader() , escribirá directamente los valores de encabezado suministrados en el canal de red sin almacenar en caché internamente, y response.getHeader() en el encabezado no producirá el resultado esperado. Si se desea la población progresiva de encabezados con posible recuperación y modificación en el futuro, use response.setHeader() en su lugar.
Para obtener una respuesta y un resultado adecuado, necesitamos importar el módulo ‘ http ‘.
Importar:
const http = require('http');
Sintaxis:
response.writeHead(statusCode[, statusMessage][, headers]);
Parámetros: Acepta tres parámetros como se mencionó anteriormente y se describe a continuación:
- statusCode < número > : Acepta los códigos de estado que sean de tipo número.
- statusMessage < string > : Acepta cualquier string que muestre el mensaje de estado.
- encabezados < Objeto > : acepta cualquier función, array o string.
Valor devuelto < http.ServerResponse > : Devuelve una referencia a ServerResponse , para que las llamadas se puedan enstringr.
El siguiente ejemplo ilustra el uso de la propiedad response.writeHead() en Node.js.
Ejemplo 1: Nombre de archivo: index.js
// Node.js program to demonstrate the // response.writeHead() 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){ const body = 'hello world'; // Calling response.writeHead method response.writeHead(200, { 'Content-Length': Buffer.byteLength(body), 'Content-Type': 'text/plain' }); response.end(body); }); // Listening to http Server httpServer.listen(PORT, () => { console.log("Server is running at port 3000..."); });
Producción:
Salida: en consola
El servidor se está ejecutando en el puerto 3000…
Ahora ejecute http://localhost:3000/ en el navegador.
Salida: en el navegador
Hola Mundo
Ejemplo 2: Nombre de archivo: index.js
// Node.js program to demonstrate the // response.writeHead() 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']); response.setHeader('X-Foo', 'bar'); // Calling response.writeHead method response.writeHead(200, { 'Content-Type': 'text/plain' }); // Getting the set Headers const headers = response.getHeaders(); // Printing those headers console.log(headers); // Prints Output on the // browser in response 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…
[Objeto: prototipo nulo] {
‘tipo de contenido’: ‘texto/sin formato’,
‘set-cookie’: [ ‘tipo=ninja’, ‘idioma=javascript’ ],
‘x-foo’: ‘bar’}
Ahora ejecute http://localhost:3000/ en el navegador.
Salida: en el navegador
OK
Content-Length se proporciona en bytes, no en caracteres. Utilice Buffer.byteLength() para determinar la longitud del cuerpo en bytes. Node.js no verifica si Content-Length y la longitud del cuerpo que se ha transmitido son iguales o no. Si intenta establecer un nombre de campo de encabezado o un valor que contenga caracteres no válidos, se generará un TypeError.
Referencia: https://nodejs.org/api/http.html#http_response_writehead_statuscode_statusmessage_headers
Publicación traducida automáticamente
Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA