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


Node.js http.validateHeaderValue()用法及代碼示例


http.validateHeaderValue()(在 v14.3.0 中添加)屬性是 ‘http’ 模塊的內置屬性,它在調用 res.setHeader(name, value) 時對提供的值執行低級驗證。

傳遞非法值作為值將導致拋出 TypeError。未定義值錯誤由代碼標識:‘ERR_HTTP_INVALID_HEADER_VALUE’。無效值字符錯誤由代碼識別:‘ERR_INVALID_CHAR’。

在將標頭傳遞給 HTTP 請求或響應之前,不必使用此方法。 HTTP 模塊將自動驗證此類標頭。

注意:使用最新版本的Node.js來獲取所需的輸出。

為了獲得響應和正確的結果,我們需要導入‘http’模塊。

const http = require('http');

用法:

http.validateHeaderValue(name, value);

參數:此方法接受上麵提到和下麵描述的兩個參數:

  • name <String>:它接受標題的名稱,不區分大小寫。
  • value <any>:它接受任何函數、數組或字符串。

返回值:它不返回任何值,而是對提供的值執行低級驗證。

下麵的示例說明了在 Node.js 中使用 http.validateHeaderValue() 屬性。

範例1: 文件名:index.js

Javascript


// Node.js program to demonstrate the
// http.validateHeaderValue() Method
// Importing http module
const http = require('http');
const { validateHeaderValue } = require('http');
// Handling Errors via try-catch
try {
  validateHeaderValue('x-my-header', undefined);
} catch (err) {
  err instanceof TypeError; // true
   
  // Printing Errors
  console.log("Is undefined Invalid:",
  err.code === 'ERR_HTTP_INVALID_HEADER_VALUE'); // true
  // 'Invalid value "undefined" for header "x-my-header"'
  console.log(err.message);
}
// Handling Errors via try-catch
try {
  http.validateHeaderValue('x-my-header', 'oʊmɪɡə');
} catch (err) {
  err instanceof TypeError; // --> true
   
  // Printing Errors
  console.log("Is undefined Invalid:",
  err.code === 'ERR_INVALID_CHAR'); // true
  // 'Invalid character in header content ["x-my-header"]'
  console.log(err.message);
}

使用以下命令運行index.js文件:

node index.js

輸出:

Is undefined Invalid:true

Invalid value “undefined” for header “x-my-header”

Is undefined Invalid:true

Invalid character in header content [“x-my-header”]

範例2: 文件名:index.js

Javascript


// Node.js program to demonstrate the
// http.validateHeaderValue() 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']);
  // Handling Errors via try-catch
  try {
    validateHeaderValue('Content-Type', 'text/html');
  } catch (err) {
    // false
    console.log("Error:", err instanceof TypeError);
   
    // Printing Errors
    console.log(err.message);
  }
  try {
    http.validateHeaderValue('Set-Cookie', ['type=ninja',
    'language=javascript']);
  } catch (err) {
    // false
    console.log("Error:", err instanceof TypeError);
   
    // Printing Errors
    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.end('ok');
});
// Listening to http Server
httpServer.listen(PORT, ()=>{
    console.log("Server is running at port 3000...");
});

使用以下命令運行index.js文件:

node index.js

輸出:

Output: In-Console

Server is running at port 3000…

Error:false

Valid header…

[Object:null prototype]{

‘Content-Type’:‘text/html’,

‘Set-Cookie’:[‘type=ninja’, ‘language=javascript’]}

現在在瀏覽器中運行http://localhost:3000 /。

Output: In-Browser

ok 
 

參考: https://nodejs.org/api/http.html#http_http_validateheadervalue_name_value


相關用法


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