Node.js/[챕터1]
[8]#9 비밀 설정 정보 관리
Dev갱이
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