Пояснение к вложенному module.exports - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть кусок кода в старой базе кода, который содержит вложенный 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 голосов
/ 12 ноября 2018

Это похоже на попытку написать 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;
0 голосов
/ 12 ноября 2018

Возможно, это была попытка генерировать модули на лету, чтобы обмениваться глобальным состоянием в приложении, однако мне не ясно, как бы вы затем импортировали такие модули. Я думаю, что это, вероятно, плохой дизайн больше всего на свете; по-видимому, эти внутренние exports утверждения выглядят совершенно ненужными.

...