MongoDB를 사용하기 위해선 회원가입이 필요하다.
Start Free로 회원가입하고 로그인 한다.
1. 클러스터 생성하기 - 오른 쪽 상단에 Create a new Cluster 버튼을 누른다.
그럼 아래와 같은 페이지로 이동하는데, 본인이 사용할 클라우드 선택 후, tier를 선택해주면 된다.
파란 풍선에 FREE TIER AVALABLE 이라고 쓰여진 것을 선택하면 무료로 사용가능하다.
그 다음 단계에서 아래 노란 색으로 체크한 부분, 무료 티어인 MO Sandbox Tier를 선택하면 되는데, 나는 이미 MO Sandbox Tier를 사용해서 선택할 수 없다.
그 다음, 클러스터 명을 본인이 정해주면 된다.
Create cluster 버튼 누르고 한 10분 기다려야 한다. 좀 많이 느리다.
2. User 설정
생성이 되면 클러스터에 유저를 연결해 줘야 하는데, 아래에 빨간색으로 체크한 CONNECT를 누른다.
모달 창이 뜨는데, 아래와 같은 설정들이 있다. (나는 이미 설정을 완료한 상태라 이미지가 더 자세하지 못한 점 죄송....)
1번 설정에서는 anywhere에서 연결 가능한 설정으로 해줬다. 처음엔 지금 사용중인 IP만 연결 가능하게 설정해 주었다가 노드 실행 시 연결이 잘 안되서ㅎㅎㅎ 다시 설정 바꿔주었다.
2번에서는 ID와 Password를 설정해줘야 하는데, 이 id와 pw는 기억해 둬야 한다. 연결 설정 시 사용해야한다.
다음으로 넘어가면 아래와 같은 설정이 나오는데, 노란색으로 칠한 설정을 누른다.
그럼 다음과 같은 페이지로 넘어가는데, Copy 버튼을 눌러 텍스트 박스 안의 내용이 복사한다. 저걸 이용해서 연결을 할 것이기 때문에 따로 복사를 해둔다. ( 추후 연결 링크라고 칭함. )
제일 처음에 생성한 UserID와 PW를 저 텍스트 안에 넣어야 함.
3. 프로젝트에 몽구스 설치
이제 프로젝트와 몽고DB를 연결해줘야 하는데, 이 때 필요한게 몽구스이다.
다시 프로젝트로 가서 npm i mongoose --save 명령어로 몽구스를 설치한다.
위에서 카피한 연결 링크는 노출되면 안된다. 그래서 github에 올릴 때나 배포가 되었을 때 노출되는 것을 막기 위해서 index.js에 직접 링크를 입력하지 않고,
따로 모듈을 생성해 연결 링크를 적어 두고 프로젝트가 production모드이냐, develope모드이냐에 따라서 다른 값을 넘겨줄 수 있도록 분기 처리를 하는 로직을 생성 해준다.
그리고 .gitignore 파일에 연결 링크가 담긴 파일 이름을 넣어줌으로 github에도 업로드 되지 않도록 한다.
//먼저 config라는 폴더를 생성하고 그 아래 분기 처리를 담당할 key.js를 생성한다.
//key.js
if (process.env.NODE_ENV === 'production') { //배포 모드일 경우
module.exports = require('./prod')
} else {
module.exports = require('./dev') // 개발모드일 경우
}
//위와 같이 config폴터 아래에
//배포모드에 분기 될 모듈 prod.js를 만든다.
module.exports = {
mongoURI:process.env.MONGO_URI
}
//개발 모드에 분기될 모듈을 만든다. - dev.js
module.exports = {
mongoURI:'연결 링크 붙혀넣기'
}
복사해온 연결 링크를 보면 <password>라고 되어있는 부분이 있는데, <password>에 본인의 pw를 치환하면된다.
//index.js
//지난 글, 'Node시작'에서 만든 index.js에서 몽고DB 설정과 관련된 코드만 가져왔다.
const mongoose = require('mongoose'); //몽구스 모듈 가져온다.
const config = require('./config/key'); //위에서 설정한대로 분기에 따른 연결 링크 가져오도록
//몽구스 모듈을 사용해 몽고DB연결한다.
mongoose.connect(config.mongoURI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false //연결 시 에러 방지 위한 설정들이다.
}).then(() => console.log('MongoDB Created...')) //몽고디비 정상 연결 시 출력할 문구
.catch((err)=> console.error(err));
여기까지 했다면 다시 서버를 껐다가 켜보자. npm run start
'Web > Node.js' 카테고리의 다른 글
Node.js ) bcrypt를 이용해 패스워드 암호화하기 - 1 (0) | 2020.11.28 |
---|---|
Node.js(express.js) 회원가입 (0) | 2020.11.28 |
Node.js x 몽고DB(MongoDB) Schema 정의하기 (0) | 2020.11.26 |
Node.js 시작하기( Node, express 설치) (0) | 2020.11.24 |