当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。