Node.js http.validateHeaderName () Метод

Опубликовано: 30 Марта, 2022

Свойство http.validateHeaderName () (добавлено в v14.3.0) - это встроенное свойство модуля http , которое выполняет низкоуровневые проверки предоставленного имени, которые выполняются при вызове res.setHeader (name, value) . Передача недопустимого значения в качестве имени приведет к возникновению ошибки TypeError , идентифицируемой кодом: « ERR_INVALID_HTTP_TOKEN ».

Нет необходимости использовать этот метод перед передачей заголовков в HTTP- запрос или ответ. Модуль HTTP автоматически проверяет такие заголовки.

Примечание. Используйте последнюю версию Node.js, чтобы получить требуемый результат.

Чтобы получить ответ и правильный результат, нам нужно импортировать модуль http.

 const http = require ('http');

Синтаксис:

http.validateHeaderName(name);

Параметры: это свойство принимает один параметр, как указано выше и описано ниже:

  • name < String > : принимает имя заголовка без учета регистра.

Возвращаемое значение: он не возвращает никакого значения, вместо этого проверяет, приемлем ли заголовок или нет.

В приведенном ниже примере показано использование свойства http.validateHeaderName () в Node.js.

Example 1: Filename: index.js

// 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 Occured", err.code);
  
  // Header name must be a valid
  // HTTP token [""]
  console.log(err.message); 
}

Запустите файл index.js, используя следующую команду:

 узел index.js

Выход:

In Console
>> Error Occured: ‘ERR_INVALID_HTTP_TOKEN’
>> Header name must be a valid HTTP token [“”]

Example 2: Filename: index.js

// 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 Occured", 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 runnig at port 3000...");
});

Запустите файл index.js, используя следующую команду:

 узел index.js

Выход:

In Console
>> Server is running at port 3000…
Header ‘Content-Type’ Validated True…
Header ‘set-cookie’ Validated True…
Header ‘alfa-beta’ Validated True…
Error Occured ERR_INVALID_HTTP_TOKEN
Header name must be a valid HTTP token [“@@wdjhgw”]
[Object: null prototype] {
 ‘content-type’: ‘text/html’,
 ‘set-cookie’: [ ‘type=ninja’, ‘language=javascript’ ]
}

Теперь запустите http: // localhost: 3000 / в браузере.

Вывод: в браузере

 Ok

Ссылка: https://nodejs.org/api/http.html#http_http_validateheadername_name