📅  最后修改于: 2023-12-03 15:03:13.402000             🧑  作者: Mango
在 Node.js http2 模块中,Http2ServerResponse.hasHeader() 方法用于检查响应头是否已设置。
response.hasHeader(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。