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>:它接受標題的名稱,並且不區分大小寫。
返回值:它不返回任何值,而是驗證標頭是否可接受。
下麵的示例說明在Node.js中使用http.validateHeaderName()屬性。
範例1: 文件名: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文件:
node index.js
輸出:
In Console
>> Error Occured:‘ERR_INVALID_HTTP_TOKEN’
>> Header name must be a valid HTTP token [“”]
範例2: 文件名: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文件:
node 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
相關用法
- Node.js console.timeLog()用法及代碼示例
- Node.js GM charcoal()用法及代碼示例
- Node.js GM blur()用法及代碼示例
- Node.js GM sharpen()用法及代碼示例
- Node.js GM drawLine()用法及代碼示例
注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js http.validateHeaderName() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。