티스토리 뷰

728x90
반응형

저번 시간에는 nodemon을 설치함으로써 서버다운 없이 리프레시를 할 수 있는 모듈을 설치하였다.

또한 package에 대해 개발/배포에 따라 구별을 하는 방법을 알았다.

그래서 이번에는 서버 설정을 하다 보면 깃에 올리지 말아야 할 것이 있다.

보완성을 더욱 높이는 방법에 대해 정리를 해보았다.

 

 

 

index.js

...
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))
  
...

mongoDB를 연결할 때, 기존에는 mongoose.connect('mongodb+srv://test:<password... 를 진행하였는데 이 부분은 개인정보 및 다른 사람이 사용할 수 있기에 보완성이 필요하다. 따라서 GITHUB에는 올라가지 않지만, 개발환경에서는 해야 하기에 따로 정리를 해야 한다.

 

mongoose(몽구스)

몽구스는 node.js를 위한 우아한 mongodb 객체 모델링이다. MongoDB 유효성 검사, 캐스팅 및 비즈니스 로직 보일러 플레이트를 작성하는 것에 어려움을 해소해줄 모델링이라 할 수 있다.

 

config/dev.js

module.exports = {
    mongoURI: 'mongodb+srv://test:<password>@...'
}

config 폴더 안에 dev.js를 만들어 module.exports를 한다. 그리고 여기서 또 하나 해야 할 것은 추후에 배포 시에 사용될 module.exports를 위해 한 가지 더 작업을 진행해준다.

 

config/key.js

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

만약 환경변수가 배포 중일 때와 로컬에 따라서 module.exports값을 다르게 설정하는 것이다. 배포 중일 때는 prod스크립트를, 아닐 경우 dev스크립트를 내보내 준다.

 

config/prod.js

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

여기서 MONGO_URI값은 헤로쿠에서 쓰이는 값과 동일하게 설정하면 배포 중인 상태에서도 문제없이 사용할 수 있다. 현재는 만들지는 않았지만, key, dev스크립트로 자체적으로는 잘 돌아가고 있는 현실이다.

 

 

 

여기까지 오늘의 내용을 조금 정리를 해보았다.

하지만 조금 이해가 가지 않는 부분도 몇 가지 분명 존재하지만, 너무 완벽하게 하다가는 진도에 차질이 생길 거 같아

일단 여기까지 정리를 해보려고 한다.

추후 더 알아가는 내용이 생길 경우 더 업데이트할 예정이다.

 

더보기

21. 03. 23. upload

21. 04. 18 mongoose 정의 추가

 

728x90
반응형
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함