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