Разбиение большого модуля на более мелкие при прохождении замыкания - PullRequest
0 голосов
/ 02 мая 2019

У меня есть такой модуль.

//a require block
const requires = require('requires');
let envSpecificVar = ""

// env specific variable set
if(envCheck()){
    envSpecificVar = "env"
}

module.exports = function(Model){
    Model.func1 = function(data,cb){
    //do some things
    }

    Model.func2 = function(data,cb){
    //do some things
    }

    Model.func3 = function(data,cb){
    //do some things
    }
}

Теперь я хочу разбить его на несколько файлов.Что я и сделал так:

index.js

module.exports = function(Model){
    require('./func1').call(this,Model);
    require('./func2').call(this,Model);
}

fun1.js

module.exports = function (Model) {
    Model.func1 = function (data, cb) {
        //do some things
    }
}

И так далее.И я называю это как

const bFiles = require('./brokenFiles');
.
.
bFiles.call(this, Model);

Но я знаю, что я только передаю контекст this и не могу получить доступ к закрытию.

Но я хочу именно это сделать.Потому что есть странные переменные env, которые установлены в основном файле js. (который я не могу изменить)

Это MCVE .Не стесняйтесь спрашивать дополнительную информацию или пометить ее как дубликат.

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете создать еще один модуль, содержащий все конфигурации:

  module.exports = { 
    envSpecificVar: ""
  };

Затем вы можете импортировать это из всех других модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...