【问题标题】:CommonJS: How to make http.createServer like method for own moduleCommonJS:如何为自己的模块制作类似 http.createServer 的方法
【发布时间】:2014-02-02 19:47:12
【问题描述】:

我认为我可以使用以下来创建 httpServer 的实例很酷:

var express = require("express"),
  app = express(),
  httpServer = require("http").createServer(app);

但是,如果我创建自己的服务器类,它应该返回自身的实例,我该怎么做?

目前我有以下示例:

server.js:

var Server = function() {
  this.someVar = 1;
};

Server.prototype.someMethod1 = function() {
  console.log("1");
};

Server.prototype.someMethod2 = function() {
  console.log("2");
};

module.exports = Server;

我是这样使用它的:

var Server = require("./app/server"),
    server = new Server();

笨拙?我想要这样:

var server = require("./app/server").createServer();

// then, do what ever I want with server instance
server.someMethod1();

感谢您的帮助!

【问题讨论】:

    标签: javascript node.js express commonjs


    【解决方案1】:

    你可以使用:

    server.js

    var Server = function() {
      this.someVar = 1;
    };
    
    Server.prototype.someMethod1 = function() {
      console.log("1");
    };
    
    Server.prototype.someMethod2 = function() {
      console.log("2");
    };
    
    module.exports.createServer = function () {
       return new Server();
    };
    

    并使用它:

    var server = require("./app/server").createServer();
    

    如果您希望能够以“快速方式”创建服务器实例,您可以使用:

    module.exports = function () {
       return new Server();
    };
    

    然后使用它:

    var server = require("./app/server")();
    

    【讨论】:

    • 谢谢,速度很快,正是我需要的! :)
    • 我很高兴能帮上忙。 :)
    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2013-07-13
    • 2016-12-20
    • 2019-01-30
    相关资源
    最近更新 更多