node.js를 배우고 있으며 다음 두 가지 경우에 어떤 차이가 있는지 관심이 있습니다. I.E. 나는 많은 모듈과 서브 모듈에서 전달되어야 할 변수 인 myvar
(db 연결 또는 단지 상수 문자열 "test"와 같은)을 가지고있다.Node.js 모듈에 변수 전달 vs 모든 모듈 함수에 변수 전달
첫 번째 경우. 서브 모듈이 동일한 여러 모듈에 사용하는 경우이 경우
var option
, submodule
, module1 = {};
module1.func = function(){
...
submodule.func();
...
var something = option;
...
}
module.exports = function(opts){
option = opts;
submodule = require('./submodule')(opts);
return module1;
}
:
submodule.js :
var option
, submodule = {};
submodule.func = function(){
...
var something = option;
...
}
module.exports = function(opts){
option = opts;
return submodule;
}
module1.js 그건 PARAM로서 해당 변수에 동의 모듈 만들기 myvar
값 (즉 2 모듈) 서브 모듈의 module.exports
함수는 2 회 호출됩니다. node.js에서는 "모듈이 처음로드 된 후 캐시됩니다"라고 말합니다. 그리고이 모듈이 캐싱되었는지 아닌지 이해할 수 없습니다.
또 다른 경우 : 그 myvar
은 모듈 기능에 매개 변수로 전달할 수 있습니다.
submodule.js :
function func(option){
...
var something = option;
...
};
exports.func = func;
module1.js :
var submodule = require('./submodule');
function func(option){
...
submodule.func(option);
...
var something = option;
...
};
exports.func = func;
그래서 질문은 : 이 이가지 경우 사이에 어떤 차이가 있나요하거나 동일 그래서 코드는 모양을 ?
[의존성 주입] (http://stackoverflow.com/questions/130794/what-is-dependency-injection)에 대해 묻는 것처럼 들리 겠지만, "변수를 모듈로 전달하는 것 ". – ekillaby