Node & React basic #5

Jay·2023년 5월 11일
0

Node & React basic

목록 보기
5/21
post-thumbnail

비밀 설정 정보 관리

mongoDB 데이터베이스 아이디와 비밀번호 때문에 레포지토리를 private으로 만들었었는데, 이걸 .gitIgnore를 이용해서 감춰보도록 하자.
개발환경이 로컬인지 배포모드인지에 따라서도 따로 해주어야 한다(예를들어 heroku서비스를 통해 배포한다든지..).

local 환경 vs 배포 환경

최상위 노드에 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가 뜸.

왜 이러는지 잘 모르겠다..

여튼 이렇게 잘 했으니 .gitIgnoredev.js도 추가해준다.

profile
ㄱ이 아닌 개발자가 되고 싶은 사람

0개의 댓글