본문 바로가기
Node.js

MongoDB 연결하기

by _sweep 2021. 5. 6.

따라하며 배우는 노드, 리액트 기본강의를 듣고 정리한 내용입니다.

MongoDB란?

document 지향 데이터베이스 시스템으로 NoSQL 데이터베이스이다.

데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되므로 유연하며 확장성이 높다.

https://www.mongodb.com/

 

The most popular database for modern apps

We're the creators of MongoDB, the most popular database for modern apps, and MongoDB Atlas, the global cloud database on AWS, Azure, and GCP. Easily organize, use, and enrich data — in real time, anywhere.

www.mongodb.com

 

 

Mongoose 설치

mongoDB와 연결하기 위해서는 연결할 디렉토리에 mongoose를 설치해야 한다.

설치는 터미널에 아래 명령어를 입력하면 된다.

 

npm install mongoose --save

 

설치를 완료하면 해당 디렉토리 내 package.json 파일에서 다음과 같은 내용을 확인할 수 있다.

 

 

MongoDB와 연결하기

mongoDB 사이트에 회원가입한 후 cluster를 생성하면 연결할 준비가 거의 다 된 것이다.

생성한 cluster에서 connect 버튼을 누르면 연결할 수 있는 주소를 얻을 수 있다.

나오는 주소를 복사한 후 <username>과 <password>부분을 생성시 입력했던 것으로 대체해주면 된다.

 

이 주소를 얻은 후 DB에 저장할 내용을 담을 파일을 하나 생성한다.

이 파일에서 mongoose를 이용하기 위해 importing을 해야한다.

 

const mongoose = require('mongoose');

 

이후 생성할 스키마를 입력해주면 된다.

 

const testSchema = mongoose.Schema({
	name: {
    	type: String,
    },
    email: {
    	type: String,
        trim: true,
        unique: 1
	},
    image: String
})

 

위의 내용은 예시로 작성한 Schema이다. 이처럼 DB에 저장할 내용들을 Schema 안에 넣어주면 된다.

 

const Test = mongoose.model('Test', testSchema)

 

Schema 작성이 완료되었으면 model을 이용해 해당 Schema를 감싸주면 된다.

 

이후 다시 실행할 index.js 파일로 돌아와 connect 명령어를 이용해 MongoDB와 연결할 수 있다.

 

mongoose.connect('mongodb://localhost/my_database', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
  useCreateIndex: true
});

 

위의 내용은 npm > mongoose에서 제공하는 예시이다.

저 주소를 넣는 부분을 아까 얻은 주소로 대체해주면 된다.

잘 연결되었는지 확인하기 위해서는 then과 catch 명령어를 사용하면 된다.

 

then 명령어를 통해 성공하면 해당 문구를 띄우게 했고 연결에 성공한 걸 확인할 수 있었다.

 

mongoose에 대한 자세한 내용은 아래 페이지에서 확인할 수 있다.

https://www.npmjs.com/package/mongoose

 

mongoose

Mongoose MongoDB ODM

www.npmjs.com

 

'Node.js' 카테고리의 다른 글

boilerplate(server) - 회원가입 기능 만들기  (0) 2021.05.08
bcrypt - 암호 해시 함수  (0) 2021.05.08
nodemon - Node.js 개발 도구  (0) 2021.05.08
body-parser - Node.js 미들웨어  (0) 2021.05.07
Express 시작하기  (0) 2021.05.06

댓글