본문 바로가기
공부/nodejs

비밀 설정 정보 관리

by 매일삼겹살 2021. 6. 13.
반응형

 

config 폴더를 만들고 

dev.js 파일을 만든다. (dev = development) 

module.exports ={
    mongoURI: 'mongodb+srv://xectler:<password>@cluster0.iwk4g.mongodb.net/myFirstDatabase?retryWrites=true&w=majority'
}

 

개발할 때 두 가지 환경에서 할 수 있다.

 

local 환경 development 와 deploy(배포)한 후 cloud 서비스 이용해서 개발을 할 수 있다.

이 두 가지 경우를 따로 생각해야 한다.

 

local 환경의 development 모드는 위 작성한 dev.js에서 변수를 가져갈 수 있다.

그런데 deploy 후 HEROKU 서비스를 이용한다고 하면 따로 몽고 uri 값을 주고 dev.js가 아니라 

HEROKU 사이트에 직접 입력해 줘야 한다.

 

key.js 파일을 만든다. key.js 는 두 가지 모드중 어떤 모드인지 판별한다. 

if(process.env.NODE_ENV === 'production'){//NODE_ENV는 환경변수다. 두 가지 모드를 판별
    module.exports = require('./prod'); //prod.js에서 가져오겠다.
}else{
    module.exports = require('./dev');
}

 

prod.js 파일을 만든다. (prod = production) mongoURI는 HEROKU 사이트의 config Vars에

입력한 나의 URI key 값이다. 똑같이 입력해 줘야함.

module.exports ={
    mongoURI: process.env.MONGO_URI
}

 

그리고 index.js 를 수정 위에서 만든 js 파일로부터 key 값을 가져오고 config에 담는다.

mongoose.connect(이 부분) 아래처럼 수정하면 된다.

const config = require('./config/key')

mongoose.connect(config.mongoURI,{
    useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: true
}).then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err))

 

마지막으로 .gitignore 파일에 dev.js 추가한 후 깃허브에 코드를 올리면 dev.js는 올라가지 않게되니

내 중요한 정보를 지킬 수 있다.

 

그리고 자신의 깃허브에 올리면 된다 

깃허브에 올리는 동안 error: src refspec master does not match any 이런 에러가 떴는데

 

git checkout -b "master" 후

다시 push 하면 해결된다.

 

 

 

 

728x90

'공부 > nodejs' 카테고리의 다른 글

로그인  (0) 2021.06.13
비밀번호 암호화 하기 Bcrypt  (0) 2021.06.13
nodemon  (0) 2021.06.12
클라이언트로부터 데이터 받기 postman  (0) 2021.06.12
nodejs model과 schema  (0) 2021.06.11

댓글