繁体   English   中英

如何在Node.js中创建派生的http(s)服务器?

[英]How do I create a derived http(s) server in Node.js?

我想派生Node.js http(s)服务器,因为我需要添加一些行为。

例如,我想要一个也具有foobar功能的http服务器。 所以我希望能够做到这样的事情:

var server = http.createServer(function (req, res) { ... }).listen(3000);
server.foobar();

当然我不知何故需要从http模块派生,但我怎么能这样做呢? 显然没有我可以覆盖的Http构造函数...

任何想法或提示?

我没有测试过,但是虽然我会说你只需要:

var http = require('http');
http.Server.prototype.foobar = function () {};

正如您在此处所看到的,createServer函数只是一个工厂,实例化之前暴露过两行的新Server对象。

正确的方法是创建服务器的子类。

var http = require('http')

class MyServer extends http.Server {
  foobar () {
    // any code
  }
}

var server = new MyServer(function (req, res) {
  // any code
})

如果您运行的Node.js版本<1.0,则需要使用旧的类语法:

var http = require('http')

function MyServer (handler) {
  http.Server.call(this, handler)
}

MyServer.prototype = Object.create(http.Server.prototype)

MyServer.prototype.foobar = function () {
  // any code
}

var server = new MyServer(function (req, res) {
  // any code
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM