當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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>:它接受標題的名稱,並且不區分大小寫。

返回值:它不返回任何值,而是驗證標頭是否可接受。

下麵的示例說明在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




相關用法


注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js http.validateHeaderName() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。