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 하면 해결된다.
'공부 > 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 |
댓글