Método Node.js http.validateHeaderValue()

La propiedad http.validateHeaderValue() ( agregada en v14.3.0 ) es una propiedad incorporada del módulo ‘ http ‘ que realiza las validaciones de bajo nivel en el valor proporcionado que se realizan cuando se llama a res.setHeader(nombre, valor) .

Pasar un valor ilegal como el valor dará como resultado que se arroje un TypeError. El error de valor indefinido se identifica mediante el código: ‘ ERR_HTTP_INVALID_HEADER_VALUE ‘. El error de carácter de valor no válido se identifica mediante el código: ‘ ERR_INVALID_CHAR ‘.

No es necesario usar este método antes de pasar encabezados a una solicitud o respuesta HTTP. El módulo HTTP validará automáticamente dichos encabezados.

Nota: Use la última versión de Node.js para obtener el resultado requerido.

Para obtener una respuesta y un resultado adecuado, necesitamos importar el módulo ‘ http ‘.

const http = require('http');

Sintaxis:

http.validateHeaderValue(name, value);

Parámetros: este método acepta dos parámetros, 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 > : Acepta cualquier función, array o string.

Valor devuelto: no devuelve ningún valor, sino que realiza las validaciones de bajo nivel sobre el valor proporcionado.

El siguiente ejemplo ilustra el uso de la propiedad http.validateHeaderValue() en Node.js.

Ejemplo 1: Nombre de archivo: index.js

Javascript

// Node.js program to demonstrate the
// http.validateHeaderValue() Method
 
// Importing http module
const http = require('http');
const { validateHeaderValue } = require('http');
 
// Handling Errors via try-catch
try {
  validateHeaderValue('x-my-header', undefined);
} catch (err) {
  err instanceof TypeError; // true
   
  // Printing Errors
  console.log("Is undefined Invalid:",
  err.code === 'ERR_HTTP_INVALID_HEADER_VALUE'); // true
 
  // 'Invalid value "undefined" for header "x-my-header"'
  console.log(err.message);
}
// Handling Errors via try-catch
try {
  http.validateHeaderValue('x-my-header', 'oʊmɪɡə');
} catch (err) {
  err instanceof TypeError; // --> true
   
  // Printing Errors
  console.log("Is undefined Invalid:",
  err.code === 'ERR_INVALID_CHAR'); // true
 
  // 'Invalid character in header content ["x-my-header"]'
  console.log(err.message);
}

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

No está definido Inválido: verdadero

Valor no válido «indefinido» para el encabezado «x-my-header»

No está definido Inválido: verdadero

Carácter no válido en el contenido del encabezado [“x-my-header”]

Ejemplo 2: Nombre de archivo: index.js

Javascript

// Node.js program to demonstrate the
// http.validateHeaderValue() Method
 
// Importing http module
var http = require('http');
 
// Another way to import
const { validateHeaderName } = 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']);
 
  // Handling Errors via try-catch
  try {
    validateHeaderValue('Content-Type', 'text/html');
  } catch (err) {
 
    // false
    console.log("Error: ", err instanceof TypeError);
   
    // Printing Errors
    console.log(err.message);
  }
 
  try {
    http.validateHeaderValue('Set-Cookie', ['type=ninja',
    'language=javascript']);
  } catch (err) {
 
    // false
    console.log("Error: ", err instanceof TypeError);
   
    // Printing Errors
    console.log(err.message);
  }
 
  // 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…

Error: falso

Encabezado válido…

[Objeto: prototipo nulo]{

‘Tipo de contenido’: ‘texto/html’,

‘Set-Cookie’: [‘tipo=ninja’, ‘idioma=javascript’]}

Ahora ejecute http://localhost:3000/ en el navegador.

Salida: en el navegador

OK 
 

Referencia: https://nodejs.org/api/http.html#http_http_validateheadervalue_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

Deja una respuesta

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