mongoDB 데이터베이스 아이디와 비밀번호 때문에 레포지토리를 private으로 만들었었는데, 이걸 .gitIgnore를 이용해서 감춰보도록 하자.
개발환경이 로컬인지 배포모드인지에 따라서도 따로 해주어야 한다(예를들어 heroku서비스를 통해 배포한다든지..).
최상위 노드에 config라는 폴더를 만들고, 그 안에 dev.js라는 파일을 만들어서
module.exports = {
mongoURI: 'index에서 mongoose에 연결해줬던 uri'
}
이와 같이 넣어준다.
dev모드에서는 우리가 따로 설정한 변수를 가져갈 수가 있지만, heroku서비스를 사용한다면 heroku사이트에 따로 정보를 지정해주어야 한다.
heroku 사이트 캡처
config폴더 안에 prod.js와 key.js라는 파일들도 만들어준다. prod.js는 production, 배포를 위해 만드는 것 같음
key.js
if(process.env.NODE_ENV === 'production'){
module.exports = require('./prod');
} else {
module.exports = require('./dev');
}
우리가 development mode에 있을 때에는 process.env.NODE_ENV가 development라고 나오고, deploy 이후에는 production으로 나온다.
그러니 개발중에는 dev에서 가져오고, 배포 후에는 prod에서 가져오겠다는 것.
prod.js
module.exports = {
mongoURI: process.env.MONGO_URI
}
저 MONGO_URI
부분은 heroku에 등록한 key값과 같아야 하는데, heroku에서 key값 넣는 부분을 아직 못 찾았다..🤔 어차피 아직 deploy 안하니까 넘기기
어쨌든 위의 작업들 때문에 index.js에서 mongoose랑 연결하는 부분이
이렇게 텅 비어버렸으므로 index.js에 const config = require('./config/key');
를 선언해준 다음 mongoose.connect부분에 config.mongoURI
를 넣어 준다. 현재 dev상태이고 dev모드에서 mongoURI로 export해줬으니 그걸 넣어주는 것
그런데 처음엔 mongoDB연결 오류가 나더니 console.log 한번 찍어보고 나니까 갑자기 된다. 하지만 postman에서는 err가 뜸.
왜 이러는지 잘 모르겠다..
여튼 이렇게 잘 했으니 .gitIgnore
에 dev.js
도 추가해준다.