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 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