관리 메뉴

Mini

[JS] 환경변수 설정방법 본문

JS

[JS] 환경변수 설정방법

Mini_96 2024. 8. 26. 17:30

* 목적 : 

노출하면안되는 port 번호, db암호, api key등을 감춤

 

* 설치방법

npm install dotenv
//root dir : .env
DB_HOST=your_remote_host
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
PORT=3000

 

* 사용

class MySqlRepository {
    constructor() {
        this.pool = mysql.createPool({
            host: process.env.DB_HOST,
            user: process.env.DB_USER,
            password: process.env.DB_PASSWORD,
            database: process.env.DB_NAME,
            waitForConnections: true,
            connectionLimit: 10,
            queueLimit: 0
        });
    }

 

* 실제사용

AWS rds에 해당 값이 없다면, .env의 값을 사용하도록 함.

export const typeORMConfig : TypeOrmModuleOptions = {
  type: dbConfig.type,
  host: process.env.RDS_HOSTNAME || dbConfig.host, //AWS or local 에서 모두 작동하도록
  port: process.env.RDS_PORT || dbConfig.port,
  username: process.env.RDS_USERNAME || dbConfig.username,
  password: process.env.RDS_PASSWORD || dbConfig.password, 
  database: process.env.RDS_DB_NAME || dbConfig.database,
  entities: [__dirname + '/../**/*.entity.{js,ts}'], //엔티티 파일이 어디있는지(엔티티 이용해서 db table 생성함)
  synchronize: dbConfig.synchronize //true -> app 재실행시, 수정된 컬럼의 테이블 drop후 재생성
}

'JS' 카테고리의 다른 글

[JS] what is defer in js  (0) 2024.08.27
[JS] req.body undifiend 해결  (0) 2024.08.26
[멘토링] 24.8.23.  (0) 2024.08.23
js 입출력  (0) 2024.08.09
[ 개인 회고 ] 24. 7. 21.  (0) 2024.07.21