복잡한 프로젝트를 진행한다면 사용하게 될 것이며 중첩된 구성 개체를 반환한다. 이걸 사용함으로써 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
}
});
위와 같은 파일을 사용할 수 있다.
그리고 사용자 전용 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파일을 가져올 수 있습니다.