[TIL] NestJS 공부 25일차

정인교·2021년 6월 28일
0

TIL(Today I Learned)

목록 보기
36/67
post-thumbnail

사용자 지정 config파일

configration.ts 파일

복잡한 프로젝트를 진행한다면 사용하게 될 것이며 중첩된 구성 개체를 반환한다. 이걸 사용함으로써 DB 구성 설정을 그룹화 및 개별 파일에 관한 설정을 저장한다.

//config/configration.ts
export default () => ({
  port: parseInt(process.env.PORT, 10) || 3000,
  database: {
    host: process.env.DATABASE_HOST,
    port: parseInt(process.env.DATABASE_PORT, 10) || 5432
  }
});

위와 같은 파일을 사용할 수 있다.

yaml 파일 관리

그리고 사용자 전용 config파일을 이용하면 YAML파일을 관리할 수 있다.

http:
  host: 'localhost'
  port: 8080

db:
  postgres:
    url: 'localhost'
    port: 5432
    database: 'yaml-db'

  sqlite:
    database: 'sqlite.db' 

이런 파일이 있다고 가정하고 시작해보자.
우선 파일을 읽기 위해서 js-yaml 모듈을 다운받자.

npm i js-yaml
npm i -D @types/js-yaml

모듈을 설치하면 configration.ts 파일을 수정해주자.

import { readFileSync } from 'fs';
import * as yaml from 'js-yaml';
import { join } from 'path';

const YAML_CONFIG_FILENAME = 'config.yaml';

export default () => {
  return yaml.load(
    readFileSync(join(__dirname, YAML_CONFIG_FILENAME), 'utf8'),
  ) as Record<string, any>;
};

export안에 있는 yaml.load()를 사용하면 방금 위에서 만든 yaml파일을 가져올 수 있습니다.

profile
백엔드 개발자 정인교입니다!

0개의 댓글