gpt4 book ai didi

javascript - http.createServer 方法中添加选项参数的用例是什么

转载 作者:行者123 更新时间:2023-12-03 12:17:02 35 4
gpt4 key购买 nike

在浏览了 node.js 文档后,我意识到 创建服务器 上的方法http 模块已更新以接收 选项 争论。如果我没记错的话,以前的 node.js 版本中没有包含它

http.createServer([options][, requestlistener])

链接: https://nodejs.org/dist/latest-v10.x/docs/api/http.html#http_http_createserver_options_requestlistener

不清楚这些选项可以用于什么,但它是一个具有属性 的对象。来电服务器响应 .

我只想澄清它的用途和代码示例。

最佳答案

服务器确实创建了一个 IncomingRequestServerResponse它接收到的每个请求的实例,并将它们传递给 request事件监听器 - 它们是您在典型 (req, res) => { … } 中收到的对象功能。

特别是它们被实例化 herethere ,在 http 库的内部(同样,在 https 和 http2 库中)。 createServer选项允许您自定义哪些类确切地用于这些对象。一个简单的例子:

import { IncomingMessage, ServerResponse, createServer } from 'http';

class MyIncomingMessage extends IncomingMessage {

}
class MyServerResponse extends ServerResponse {

}

const server = createServer({
IncomingMessage: MyIncomingMessage,
ServerResponse: MyServerResponse,
});
server.on('request', (req, res) => {
console.assert(req instanceof MyIncomingMessage);
console.assert(res instanceof MyServerResponse);

res.statusCode = 200;
res.end('Hello!');
});

一个简单的定制是添加您自己的方法,否则从内置的默认类继承。你也可以覆盖一些方法,或者你可以滚动你自己的实现。

关于javascript - http.createServer 方法中添加选项参数的用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57717492/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com