📜  Node.js http.validateHeaderValue() 方法

📅  最后修改于: 2022-05-13 01:56:45.113000             🧑  作者: Mango

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);
}


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

输出:

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

输出:

现在在浏览器中运行http://localhost:3000/

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