📅  最后修改于: 2023-12-03 15:17:54.858000             🧑  作者: Mango
Http2ServerResponse.end()
方法是 Node.js 中 Http2 模块提供的一个方法,用于结束 Http2 响应并向客户端发送数据。
该方法通常用于返回最终的响应结果,并通知客户端当前响应已经完成。一旦调用 response.end([data][, encoding][, callback])
方法后,将不能再向客户端发送任何数据,否则会抛出 ERR_HTTP_HEADERS_SENT
异常。
response.end([data][, encoding][, callback])
data
:可选参数,表示要向客户端发送的数据,可以为 String
、Buffer
或 Uint8Array
类型。encoding
:可选参数,当 data
是字符串类型时,指定字符串的编码格式,默认为 utf8
。callback
:可选参数,当客户端接收完响应时执行的回调函数,只会执行一次,且仅在第一次调用 response.end()
时才执行。该方法没有返回值。
const http2 = require('http2');
const fs = require('fs');
const options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
};
const server = http2.createSecureServer(options);
server.on('error', (error) => {
console.error(error);
});
server.on('stream', (stream, headers) => {
stream.end('Hello World!');
});
server.listen(9000);
以上代码演示了如何使用 Http2ServerResponse.end()
方法向客户端发送 Hello World!
的字符串。
stream
事件中使用。response.end()
后仍然向客户端发送数据,将会抛出 ERR_HTTP_HEADERS_SENT
异常。response.end()
方法时,如果同时指定了 data
和 callback
参数,则必须先发送数据再调用回调函数,否则回调函数将不会执行。