-
[8]#9 비밀 설정 정보 관리Node.js/[챕터1] 2021. 4. 30. 00:15728x90
코드안에 숨겨야할 정보 예) 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'Node.js > [챕터1]' 카테고리의 다른 글
#11 로그인 기능 with Bcrypt (1) (0) 2021.06.07 #10 Bcrypt로 비밀번호 암호화 하기 (0) 2021.06.07 [7]#8 Nodemon 설치 (0) 2021.04.29 [6]#7 BodyParser & PostMan & 회원 가입 기능 (0) 2021.04.29 [5]#6 SSH를 이용해 GITHUB 연결 (0) 2021.04.29