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