cla*_*ine 3 javascript node.js
在浏览 node.js 文档时,我意识到http模块上的createServer方法已更新为接收选项参数。如果我没记错的话,它以前没有包含在以前版本的 node.js 中
http.createServer([options][, requestlistener])
Run Code Online (Sandbox Code Playgroud)
链接:https : //nodejs.org/dist/latest-v10.x/docs/api/http.html#http_http_createserver_options_requestlistener
目前尚不清楚这些选项可以用于什么,但它是一个具有IncomingMessage和ServerResponse属性的对象。
我只想说明它的用途和代码示例。
服务器确实为它收到的每个请求创建一个IncomingRequest和ServerResponse实例,并将它们传递给request事件侦听器 - 它们是您在典型(req, res) => { … }函数中接收的对象。
特别地,它们在 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!');
});
Run Code Online (Sandbox Code Playgroud)
一个简单的定制是添加您自己的方法,否则从内置的默认类继承。您还可以覆盖一些方法,或者您可以推出自己的实现。
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |