Node.js respuesta.writeHead() Método

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *