[노드, 리액트 기초 | node.js] #2. MongoDB 연결

ppmyor·2022년 7월 5일
0

노드, 리액트 기초

목록 보기
2/26
post-thumbnail

🌿 MongoDB가 뭔데요?

MongoDB는 NoSQL(Not only SQL) 데이터베이스이고, 해당 링크 에 너무나도 자세히 설명되어있으니 설명은 생략한다. 관계형DB가 아니기 때문에 고정된 Schema나 JOIN이 존재하지 않으며 데이터 구조가 key-value 형식으로 이루어진게 특징이다. 학교 다닐 때 MySQL을 찍먹해봤었는데 MongoDB는 처음 다뤄본다. 메인 로고인 이파리가 좀 귀엽다.

🦫 Mongoose는요?

Mongoose는 Node.js와 MongoDB를 연결해주는 ODM이라고한다.

ODM(Object Document Mapping) : 객체와 문서를 1대1로 매칭하는 역할

정의를 살펴보니 더 알쏭달쏭해지지만, 어쨌든 MongoDB의 Document를 자바스크립트의 객체로 바꾸어주는 역할을 해준다고 한다. 결국 간단하게, 몽고 DB를 편하게 쓸 수 있는 Object Modeling Tool이다.

MongoDB ODM 인 Mongoose 사용하기

⚙️ MongoDB 연결

  1. MongoDB 홈페이지에 회원가입

MongoDB 홈페이지에 회원가입을 진행한다. 나는 구글계정으로 회원가입을 했다.

  1. cluster 생성
    AWS에 가까운 지역이 좋다고 해서 Seoul (ap-northeast-2)로 체크하고 Cluster Tier
    는 M0 Sandbox로 선택, cluster Name까지 지정한 뒤 생성한다.

  2. user 생성
    atlas -> connect -> user 생성 -> choose a connection method -> Add your connection string into your application code 복사 하는 과정을 순차적으로 진행해주면 된다.
    위 과정 중에 혹시 ip관련 내용이 뜬다면 current ip를 추가해주어야한다. 추가 안했다가 넘어가질 않아 헤맸다.

  3. mongoose 설치

npm install mongoose --save

설치 후 package.json 파일을 살펴보면 dependencies에 자동으로 mongoose 추가된 것을 볼 수 있다.

  1. App에 MongoDB 연결하기
const mongoose = require("mongoose");
mongoose.connect("상단에서 복사한 application code 붙여넣기", {
  userNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
  useFindAndModify: false,
});

index.js파일에 mongoose 관련 코드를 작성해주는 것이 필요한데, 위의 코드로 연결할 수 있다.
useNewUrlParser ~ useFindAndModify 까지는 연결 시 발생하는 에러들을 무찔러주는 코드이다.

🥲 문제

연결 과정 중 아래와 같은 에러가 발생했다.

MongoParseError: options usecreateindex, usefindandmodify are not supported

이는, 몽구스 버전이 6.0이상이라면

 userNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
  useFindAndModify: false,

등의 내용이 기본 디폴트로 들어있기 때문에(굿👍) 코드를 삭제하면 정상 작동된다.

➕ 참고

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 를 공부하며 작성한 글입니다.

profile
유영하는 개발자

0개의 댓글