* 목적 :
노출하면안되는 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 |