소스 내부 비밀 정보 보호를 보호한다
mongo DB에 연결시 URI에 데이터베이스 접근 비밀번호가 포함되어 있기에 이 부분을 보호해야 함
config 폴더 생성
config 폴더 내에 dev.js, key.js, prod.js 생성
개발 환경이 Local(develoment) 환경이냐 배포(production) 환경이냐에 따라 처리를 다르게 함
key.js
//개발 환경이 배포 환경이면
if(process.env.NODE_ENV==='production'){
module.exports=require('./prod'); //prod.js에서 mongoURI를 읽어오고
}else{
module.exports=require('./dev'); //로컬 환경이면 dev.js에서 mongoURI를 읽 어온다
}
Local 환경일 때, dev.js에서 mongoURI를 읽어오게 설정
module.exports={
mongoURI='mongodb+srv://alwayslee<password>~'
}
배포 환경일 때, prod.js에서 mongoURI를 읽어오게 설정
module.exports={
mongoURI:process.env.MONGO_URI // MONGO_URI= 배포 서버에 명시되어 있는 환경 변수 이름과 같아야 함 (HEROKU에 경우)
}
.gitignore
에 dev.js 추가(dev.js에는 mongoURI가 명시되어 있기 때문에 깃허브에 업로드 시 해당 파일을 같이 올리면 안된다)
index.js
변경
const config=requires('./config/key');
코드 추가
//명시해줬던 mongoURI를 config.mongoURI로 수정
mongoose.connect(config.mongoURI,{
useNewUrlParser:true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false
}).then(()=>console.log('MongoDB Connected'))
.catch(err=>console.log(err));
www.inflearn.com/course/따라하며-배우는-노드-리액트-기본