我应该创建实例的模块或不

Should I create instance of module or not?

本文关键字:模块 创建 实例 我应该      更新时间:2023-09-26

我有一个看起来像这样的模块:

module.exports = {
    property1: {}, 
    property2: {},
    fucnct1: function(one, two){
        this.property1 = one;
        this.property2 = two;
    }
}

然后执行以下操作

var myModule = require("./myModule.js");
var api = {
    handleRequest: function(req, res){
        // someValue1 and someValue2 are different for each request
        myModule.funct1(someValue1, someValue2)
    }
};
// Handle the http request.
handleRequest = function(req, res){
    var apiInst = Object.create(api);
    apiInst.handleRequest(req, res);
};
// Start the server
var server = http.createServer(handleRequest);
server.listen(port, function(){
    console.log("Listening on port " + port || "Could not start server");
});

当2个或更多人同时访问服务器时,他们是否在模块内共享这些属性(myModule.property1myModule.property2),或者它们对每个用户来说是唯一的?

我是否应该为每个用户创建这个模块的实例?

是的,这两个属性是共享的。您不能真正创建模块的实例,但是您可以导出一个对象并创建该对象的实例。