Método Node.js http.validateHeaderName()

La propiedad http.validateHeaderName() (agregada en v14.3.0) es una propiedad incorporada del módulo ‘ http ‘ que realiza las validaciones de bajo nivel en el nombre proporcionado que se realizan cuando se llama a res.setHeader(nombre, valor) . Pasar un valor ilegal como nombre dará como resultado un TypeError , identificado por el código: » ERR_INVALID_HTTP_TOKEN «.

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.validateHeaderName(name);

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 devuelto: No devuelve ningún valor, sino que valida si el encabezado es aceptable o no.

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

Ejemplo 1: Nombre de archivo: index.js

Javascript

// Node.js program to demonstrate the
// http.validateHeaderName() Method
 
// Importing http module
var http = require('http');
const { validateHeaderName } = require('http');
 
try {
  validateHeaderName('');
} catch (err) {
  err instanceof TypeError; // true
 
  // ERR_INVALID_HTTP_TOKEN
  console.log("Error Occurred", err.code);
 
  // Header name must be a valid
  // HTTP token [""]
  console.log(err.message);
}

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

En la consola 
>> Ocurrió un error: ‘ERR_INVALID_HTTP_TOKEN’ 
>> El nombre del encabezado debe ser un token HTTP válido [“”] 
 

Ejemplo 2: Nombre de archivo: index.js

Javascript

// Node.js program to demonstrate the
// http.validateHeaderName() 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']);
 
  // Validating headers
  try {
    validateHeaderName('Content-Type');
    console.log("Header 'Content-Type' Validated True...")
    http.validateHeaderName('set-cookie');
    console.log("Header 'set-cookie' Validated True...")
    http.validateHeaderName('alfa-beta');
    console.log("Header 'alfa-beta' Validated True...")
    validateHeaderName('@@wdjhgw');// not valid
  } catch (err) {
    err instanceof TypeError;
    console.log("Error Occurred", err.code);
   
    // Prints 'Header name must be
    // a valid HTTP token [""]'
    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.writeHead(200,
    { 'Content-Type': 'text/plain' });
  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:

En Consola 
>> El servidor se está ejecutando en el puerto 3000… 
Encabezado ‘Content-Type’ Validado como verdadero… 
Encabezado ‘set-cookie’ Validado como verdadero… 
Encabezado ‘alfa-beta’ Validado como verdadero… 
Ocurrió un error ERR_INVALID_HTTP_TOKEN El 
nombre del encabezado debe ser un token HTTP válido [ “@@wdjhgw”] 
[Objeto: prototipo nulo] { 
 ‘tipo de contenido’: ‘text/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_validateheadername_name

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 *