2016-10-03 2 views

답변

0

일반적으로 공용 공유 코드가 아닌 구성 파일에서 자격 증명을로드하면 구성 파일의 셸만 공용 저장소에 포함됩니다. Node.js를에서

는 구성 파일을 읽을 수있는 가장 쉬운 방법 중 하나는, 파일의 데이터가 JSON 수 있도록 파일에게 그때 그냥 같이 require() 그것을로드 할 수 .json 파일 확장자를 제공하는 것입니다 :

const config = require('./config.json'); 
+0

그러면이 설정 파일을 모듈에서 공유하지 않고 어떻게 액세스 하시겠습니까? – baranskistad

+0

@bjskistad - 당신이 묻는 것을 이해하지 못합니다. 코드를 설치할 때 설정 프로세스의 일부는 올바른 데이터베이스를 수동으로 설치 및 생성하는 것처럼 필요한 구성 파일을 수동으로 작성/편집한다는 것입니다. 원하는 곳에 config 파일을 놓고'require()'와 함께 적절한 경로를 사용하여 도달 할 수 있습니다. 이 모듈은 설정 파일을 참조하지만, 모든 기능을 갖춘 설정 파일을 공개 저장소에 두지는 않습니다. 구성 파일은 실행하는 동안 서버 소스 파일을 보관하는 안전한 서버 측 디렉토리에만 놓습니다. – jfriend00

1

노드 모듈에 자격 증명을 포함시키지 마십시오. 이는 나쁜 습관으로 간주됩니다. 노드 모듈 사용자가 자신의 자격 증명을 제공 할 수있는 방법을 제공합니다. 예를 들어, 모듈이 클래스를 내 보낸 경우. 사용자 이름과 암호를 사용하는 클래스 생성자를 가질 수 있습니다.

또한 모든 노드 모듈은 오픈 소스가 아닙니다. NPM은 비공개 패키지를 호스트 할 수있는 기능을 제공합니다 (또는 유료 서비스). 또는 sinopia와 같은 기능을 제공합니다.이 기능을 사용하면 npm과 함께 사용할 패키지 레지스트리를 호스트 할 수 있습니다.

+0

모듈에 creds를 넣지 않으면 어떻게 heroku가 DB에 연결합니까? – baranskistad

+0

노드 모듈을 작성하여 npm에 게시 한 경우 해당 노드 모듈에 자격 증명을 저장하지 마십시오. 노드 모듈을 필요로하는 사람은 위에서 언급 한 것과 같은 것을 통해 자격 증명을 제공합니다. 예를 들어, 프로젝트에서 Facebook SDK에 액세스하는 데 사용할 수있는 'fb'노드 모듈이 필요할 수 있습니다. 이 모듈에는 'setAccessToken'함수가 있습니다.이 함수를 사용하면 모듈에 자격 증명을 제공하여 특정 SDK 함수에 액세스 할 수 있습니다. – Alan

+0

12factor.net을 살펴보십시오. 모든 종류의 모범 사례에서 여러분에게 꽤 계몽적입니다. – Paul

관련 문제