ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [8]#9 비밀 설정 정보 관리
    Node.js/[챕터1] 2021. 4. 30. 00:15
    728x90

    코드안에 숨겨야할 정보 예) db정보등을 숨기기 위한 작업.

     

    1.conf폴더 / dev.js, key.js, prod.js 파일을 만든다

    2. dev.js (로컬에서만 쓸때 중요정보 보관하는곳)에서 

    module.exports = {
        mongoURI: '몽고dbURL'
    }

    3.key.js

    if(process.env_NODE_ENV ==='production'){
        module.exports = require('./prod');
    } else{
        module.exports = require('./dev');
    }

    local 환경이면 process.env_NODE_ENV가 development로 나오고 배포한 후라면 production이 나와서 그에 따른 config파일을 가져온다.

     

    3.prod.js

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

    dev와 prod가 어떻게 들고오는지에 대한 차이는 dev는 내가 입력한 몽고db에서 얻은 url로 로그인하는거고

    prod는 배포를 했기 때문에 배포를 관리하는 aws나 그런곳에서 MONG_URI를 입력하는 곳이 있다 그곳에 입력하면 가져옴.

     

    4.index.js에서 config를 가져오고 그리고 몽고db connect도 바꿔준다.

    const config = require('./config/key');
    //추가
    
    mongoose.connect(config.mongoURI, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        useCreateIndex: true,
        useFindAndModify: false
    }).then(() => console.log('MongoDB connected!'))
      .catch(err => console.log(err))
      //수정
    
    
    //index.js

    이렇게 처리하게 되면 좋은점이. 내 db정보도 숨길 수 있으면서 conf쪽은 gitignore로 github에 안올릴 수 있다.

     

    gitignore에 dev.js 제외시켜주기!

     

    이제 설정된것들과 코드들을 다시 github에 올려주자 

     

    git add .
    git status
    git commit -m "비밀 정보 보호"
    git push origin main //원래 git push origin master인데 안되서 main으로 하니까 됨

    깃푸시 성공!!!!!.

    config폴더엔 당연히 dev.js가 없다 왜냐하면 .gitignore에 추가해놓았으니...

    728x90
Designed by Tistory.