2012-02-08 4 views
0

저는 최근에 소스를 오픈하고 싶은 일부 사용자 정의 모듈을 사용하는 작은 프로젝트에 착수했습니다. 다른 커뮤니티 모듈에서 종속성을 처리하는 현재 최상의 방법을 다루는 기사를 읽었지만 데이터베이스 또는 2를 제 모듈에 통합하는 최선의 방법으로 고심하고 있습니다.내부 데이터베이스를 사용하는 노드 모듈을 만드는 것이 가장 좋은 방법입니까?

지금 작업 대기열에는 Redis를, 영구 저장에는 MongoDB를 사용하고 있습니다. 논리는 실제 모듈과 분리되어 있으며 응용 프로그램마다 다릅니다. 나는 모듈/작업 대기열 논리를 모듈에 더 유용하고 견고하게 만들기 위해 모듈로 작업하고 싶지만 잠재적 인 사용자가 다른 데이터베이스 기술을 활용할 수 있도록하면서 최선의 방법을 확신 할 수는 없다. . 각 유형의 데이터베이스에는 단점이 있으며 사용자가 내 기본 항목을 변경하기위한 API를 제공하고자한다고 알고 있습니다.

나는 2 개의 별도 데이터베이스 시스템에 의존하는 npm 모듈을 설치할 때 생성되는 약간의 장벽에 대해 우려하고 있으며 그 주제에 대해 누구가 말하는지 궁금 할 것입니다.

답변

2

누군가가 내부 부품을 대체 할 수있는 모듈을 작성한 경우에는 일반적으로이 매개 변수를 통해 생성자에 매개 변수를 전달합니다. 모듈에서

:

function A(opts) { } 
module.exports = A; 

사용하여 코드에서 : 당신이 OPTS을 대체 할

var opts = { 
    ... 
}; 
var A = require('./a')(opts); 

는 OPTS에 통과하고 싶었 어떤 객체를. 당신은 몇 가지 방법으로 이것을 할 수 있고 대부분의 사람들은 이런 종류의 일에 대해 그들 만의 스타일을 가지고 있습니다.

종속성과 최상의 접근 방식에 관해서는 여러분이 결정을 내려야 만한다고 생각합니다. 궁극적으로, npm 내에 모듈 만 사용하지 않으면 써드 파티 의존성이 필요합니다. 종속성에 대해 명시 적으로 확인하고 누군가가 그렇게 선택하면 종속성을 변경하는 방법을 설명해야합니다.

관련 문제