별도의 노드를 만드는 연습을 찾습니다.다른 환경(개발,테스트,스테이징 및 프로덕션)에 대한 구성 변수를 관리하는 구성 파일.
그래서 하나의 단일 노드로 모든 환경에 대한 구성 변수를 관리하는 솔루션으로 끝났습니다.설정 파일.
먼저 구성을 만들어 보겠습니다.아래와 같이 루트/구성 폴더에 있습니다. 아이디어는 개발이 기본 환경이며 모든 구성 변수를 포함합니다. 기본 개발 환경에 있는 기본 구성 변수 값을 재정의하려는 경우에만 다른 환경에서 구성 변수를 반복합니다.
보시다시피 테스트,스테이징 및 프로덕션 환경은 모두 구성 및 데이터베이스 구성 변수를 재정의합니다. 또한 스테이징 및 프로덕션 환경도 노드 _포트 구성 변수를 재정의합니다.
다음으로 실제 논리를 구현하는 몇 가지 코드를 작성해 보겠습니다. 구성 만들기.아래와 같이 루트/구성 폴더에 있습니다. 이 코드:
- 루트/구성에서 찾은 제이슨을 읽습니다.파일.
- 기본 설정을 구성에 있는 개발 노드로 설정합니다.제이슨
- 환경 설정을 구성에 있는 해당 환경 노드로 설정합니다.환경 변수 값을 기반으로 합니다.
- 로다쉬의 병합 메소드를 호출하여 기본 및 환경 구성의 결합에 대한 최종 구성을 설정합니다..
- 는 최종 설정 값을 사용하여 전역 변수를 설정합니다.
- 의 값을 기록합니다.
마지막으로 루트/서버를 만들어 보겠습니다.이 모든 것을 브라우저에서 테스트 할 수 있습니다. 아래 코드는 자체 설명입니다. 노드 환경 변수에 대해 다른 값을 설정하여 테스트하십시오.
다음은 서버에서 노드 환경 변수를 설정하여 테스트한 스크린샷입니다.개발 및 스테이징. 이 경우 개발 환경에서는 구성,노드 및 데이터베이스의 값이 재정의됩니다.
위의 코드를 복제/다운로드 할 수 있습니다. 여기 내 깃허브 저장소에서.
보너스로,아무것도 구성에 키 또는 암호와 같은 비밀을 포함에서 당신을 중지하지 않습니다.제이슨 단순히 구글 클라우드 플랫폼의 클라우드 키 관리 서비스(킬로미터)와 같은 엔터프라이즈 급 암호화 솔루션을 사용하여 소스 저장소에 밀어 전에 휴식을 암호화합니다. 그리고 당신의 마음에 드는 컴퓨터/카드뮴 공구를 사용하여 각 배치에 그것을 해독하십시오.
구글 클라우드 플랫폼의 클라우드 키 관리 서비스를 사용하여 내 블로그 게시물을 확인하십시오.
행복한 코딩!