소스 안에 id, password와 같은 비밀정보가 있으면 github에 소스를 올릴 때, 다른 사람들이 볼 수 있기 때문에 .gitignore 파일에 처리를 할 것이다.
process.env.NODE_ENV
개발할 때 두 가지의 환경에서 작업 할 수 있다.
Local 환경 - local development
Deploy 환경 (배포 한 후) - prodection위의 두 가지 경우를 따로 생각해야 된다.
development에서는 mongoURI를 바로 가져갈 수 있지만,
배포를 한 뒤에는 HEROKU에서 직접 정한 키가 있기 때문에 (MONGO_URI)로컬 환경과 배포 된 후에는 해당 HEROKU 웹 사이트에서 가져갈 수 있도록 분기처리를 해줘야 된다.
환경 변수에서 development에 있을 때는 process.env.NODE_ENV가 development라고 나온다.
만약 deploy한 이후이면 process.env.NODE_ENV가 production이라고 나온다.
config 폴더를 하나 만들어서 dev, prod 환경일 때 각각 mongoURI 처리를 해주었다.
key.js
여기서 process.env.NODE_ENV가 development, prodection 인지를 판별해서 모듈을 내보낸다.
if(process.env.NODE_ENV === 'production') { module.exports = require('./prod'); } else { module.exports = require('./dev'); }
dev.js
module.exports = { mongoURI: 'mongodb+srv://[id]:[password]@[db name].hfxjq.mongodb.net/myFirstDatabase?retryWrites=true&w=majority' }
prod.js
module.exports = { mongoURI: process.env.MONGO_URI }
index.js
config 파일 밑에 key.js파일에 분기처리 해 놓은 것을 가져와서 MongoDB와 cpplication을 연결할 수 있도록 코드를 수정한다.
const config = require('./config/key'); mongoose.connect(config.mongoURI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false }) .then()...
따라하며 배우는 노드, 리액트 시리즈를 통해 개념을 익히면서 실습하고 있습니다.
https://bit.ly/3wGxKGC