📜  Node.js Http2ServerResponse.hasHeader() 方法(1)

📅  最后修改于: 2023-12-03 15:03:13.402000             🧑  作者: Mango

Node.js Http2ServerResponse.hasHeader() 方法

在 Node.js http2 模块中,Http2ServerResponse.hasHeader() 方法用于检查响应头是否已设置。

语法
response.hasHeader(name)
参数
  • name:要检查的响应头名称。
返回值

如果指定响应头已设置,则返回 true,否则返回 false。

示例
const http2 = require('http2');
const fs = require('fs');

const options = {
  key: fs.readFileSync('localhost-privkey.pem'),
  cert: fs.readFileSync('localhost-cert.pem')
};

const server = http2.createSecureServer(options);

server.on('stream', (stream, headers) => {
  console.log('stream.headers', headers);
  stream.respond({
    ':status': 200,
    'content-type': 'text/plain',
    'custom-header': 'yes'
  });
  console.log('Stream has custom-header:', stream.hasHeader('custom-header')); // true
  console.log('Stream has user-agent:', stream.hasHeader('user-agent')); // false
  stream.end('Hello, World!');
});

server.listen(8443, 'localhost', () => {
  console.log(`Server listening on https://localhost:8443`);
});

在上述示例中,我们创建了一个 HTTP/2 安全服务器,并添加了一个流事件监听器。在流事件中,我们通过 stream.respond() 设置一个响应头,并检查是否已设置了一个自定义头 custom-header 和一个 user-agent 响应头。最后,我们使用 stream.end() 发送响应体。

以上示例的输出结果如下:

Server listening on https://localhost:8443
stream.headers { ':path': '/' }
Stream has custom-header: true
Stream has user-agent: false

在输出结果中,我们可以看到 stream.hasHeader() 方法正确地返回了 custom-header 的布尔值为 true,而对于未设置的 user-agent 头,则返回了 false。

参考资料