2011-09-05 6 views
0

많은 사람들이 특정 파일 이름을 한 번 필요하면 다른 모든 변수를 가져올 수 있기 때문에 다른 파일에 변수를 가져올 수 있도록 객체를 "내보내는"모듈을 사용하는 것이 좋습니다. 다른 파일에서 동일한 파일이 코드를 재평가하지 않고 파일이 처음 필요했던 것과 동일한 내 보낸 객체를 즉시 반환하도록 요구합니다. 이를 통해 전역 변수를 사용하지 않고 파일간에 어떤 변수를 공유 할지를 선택하여 파일간에 상태를 유지하거나 동일한 변수를 사용해야하는 코드를 분리하는 것이 필수적입니다.Node.js 전역 변수 및 필요 사용하기

내 문제는 다음과 같습니다. 어떻게 내 보낸 변수를 수정할 수 있습니까? 아니면 변경할 수 있습니까? 그리고 변경할 수없는 경우 전역 변수를 사용하여 만 구현할 수있는 기능이 부족합니다 ...?

답변

1

내보낼 수있는 변수는 없습니다. require 함수는 일반적인 Javascript 객체를 반환하고, "내 보낸 변수"라고하는 것은 반환 된 객체의 속성입니다.

내부적으로 require()은 사전 매핑 모듈 식별자를 이러한 개체에 유지하고 전달 된 동일한 모듈 식별자에 대해 동일한 개체가 반환되도록합니다.

그래서 원하는 속성을 수정할 수 있습니다. 당신은 다음과 같은 작업을 수행 할 수 있습니다 :

var connect = require('connect') 
connect.foo = 42 

이 코드는 효과적으로 원숭이 패치 모듈을 연결하고 여기에 foo "내보내기"를 추가합니다.

+0

요구하는 전화가 걸려 오는 동안 특정 속성 집합을 원하고 모듈에서 사용할 수있는 경우가 해결되지 않습니다. 이 작업을 수행 할 수있는 유일한 방법은 전역 속성 인 global.foo = 42; var connect = require ('connect'); –