我有一个像这样的模块。
//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
上下文,并且无法访问闭包。
但是我想完全做到这一点。因为在主要js文件中设置了奇怪的env变量。 (我无法更改)
这是MCVE。随时要求更多信息或将其标记为重复。
答案 0 :(得分:0)
您可以创建包含所有配置的另一个模块:
module.exports = {
envSpecificVar: ""
};
然后,您可以从所有其他模块中导入它。