嵌套module.exports的说明

时间:2018-11-12 07:02:11

标签: javascript node.js nested nested-loops

我在旧代码库中有一段代码,其中包含嵌套的module.exports,如下所示。我以前从未见过这种出口形式。可以请一些解释或至少指出我正确的文章吗?

module.exports = function something(options) {

   someMethod = new func1(options);

   module.exports.anotherFunc = function (req, res) {
       someMethod.anotherFunc1(req, res);
   };

   module.exports.func1 = someMethod.func3;

   return function func4(req, res, next) {
       someMethod.anotherFunc1(req, res);
       next();
   };
};

2 个答案:

答案 0 :(得分:0)

本来是为了在整个应用程序中共享全局状态而试图动态生成模块的尝试,但是我不知道如何导入这些模块。我认为这可能是最糟糕的设计。从外观上看,这些内部exports语句看起来完全没有必要。

答案 1 :(得分:0)

这似乎是试图编写IIFE的尝试,这是完全错误的。可能应该只是

// module-local variable
const someMethod = new func1(options);

module.exports = function func4(req, res, next) {
    someMethod.anotherFunc1(req, res);
    next();
};

module.exports.anotherFunc = function (req, res) {
    someMethod.anotherFunc1(req, res);
};

module.exports.func1 = someMethod.func3;