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


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