2012-07-01 4 views
0

내 프로젝트를 여러 OO 클래스로 분할 한 후 다중 생성자를 통해 Model 인스턴스 (몽구스 모델 및 스키마 포함)에 대한 참조를 전달해야합니다.Node.js 모듈 캐싱을 사용하여 전역 적으로 액세스 할 수있는 싱글 톤을 만들 수 있습니까?

model.js 모듈 안에 Model 클래스의 인스턴스를 만든 다음 필요한 모든 곳에이 model.js 모듈이 필요합니까? 이 같은

뭔가 :

Model = function() { ... } 

module.exports = new Model(); 

이 같은 Model 인스턴스가 글로벌 싱글을 가지고 같은 파일을 공유 할 수 있도록 노드의 module caching에 의존하는 것이다.

또는 생성자를 통해 명시 적으로 종속성을 전달해야합니까?

답변

1

아니요, 좋지 않습니다. 사실, 많은 사람들이 그렇게합니다.

+0

감사합니다. 나는 어떤 모듈에서든'User = mongoose.model ('User')'를 쓰면 나의 몽구스 모델을 얻을 수 있다는 것을 깨달았습니다. 그래서 그들은 그 패턴을 사용하고있는 것처럼 보입니다. – vaughan

1

나는 그렇다고 말하고 싶지만 이것은 나쁜 습관이고 쉽게 학대 당한다. 이것은 단단히 결합 된 모듈을 보장하며, 몽구스에서 벗어나면 데이터베이스에 접한 모든 파일을 수정해야 할 것입니다. 오 싱글 남용이 나쁘다는 것과 같은 이유 모두가 좋지 않습니다.

많은 사람들이 무언가를하고 있기 때문에 어떤 특정한 방법은 그것이 최선의 방법이라는 것을 의미하지 않습니다.

관련 문제