Node.js http.validateHeaderName () Метод
Свойство 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 modulevar 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 modulevar http = require("http"); // Another way to importconst { validateHeaderName } = require("http"); // Setting up PORTconst PORT = process.env.PORT || 3000; // Creating http Servervar 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 ServerhttpServer.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