[Node.js] MongoDB 연결하기

mongoose

Posted by dongjune on December 14, 2020

지난 포스팅에서는 express로 서버를 구축해봤습니다.

이번 포스팅에서는 mongoDB를 연결하는 방법을 알아보겠습니다.

package

우선 필요한 package들을 설치하겠습니다.

1
$ npm i mongoose config

mongoose를 통해 nodejs에서 mongoDB를 사용할 수 있습니다.

config는 mongoDB의 URI를 따로 json 파일에 저장하여, 필요할 때마다 불러오기 위해 설치해주겠습니다.

MongoDB 생성하기

이제 MongoDB를 생성해야합니다.

https://www.mongodb.com/1 에 접속하신 후 아이디가 없다면 아이디를 생성해주세요

그리고 new Project를 눌러 project를 생성해주시고

Build a Cluster를 클릭합니다. 그럼 다음과 같은 창이 뜨는데 오른쪽의 Free 클릭합니다. 스크린샷 2020-12-14 오후 3 28 01

결제창이 뜨면 그냥 화면 아래에 Create cluster 클릭하시고 조금 기다리시면 cluster 생성 완료입니다.

이제 빨간박스로 표시한 connect 버튼을 클릭합니다. 스크린샷 2020-12-14 오후 3 31 22

1번의 IP Address를 추가해주시고

2번에서 admin과 비밀번호를 설정합니다. 이때 비밀번호는 반드시 필요하니 꼭 따로 저장해주세요.

스크린샷 2020-12-14 오후 3 32 20 스크린샷 2020-12-14 오후 3 33 29

이제 다음과 같은 화면이 뜹니다. 중앙의 connect your application을 클릭하시면 스크린샷 2020-12-14 오후 3 34 06

URI를 copy 할 수 있습니다. 이제 이 URI를 사용하여 저희의 앱과 MongoDB를 연결해보겠습니다. 스크린샷 2020-12-14 오후 3 34 28

MongoDB 연결하기

루트 디렉토리에 config 폴더를 만듭니다.

이곳에 DB의 URI 정보와 DB를 연결하는 module을 만들 예정입니다.

다음과 같이 config 폴더 안에 default.json과 db.js 파일을 생성하고 json 안에 자신의 mongoDB URI를 넣어줍니다. 빨간색 부분에는 아까 생성한 비밀번호를 넣어야 합니다.

스크린샷 2020-12-14 오후 3 40 27

db.js 에서 다음의 코드를 작성해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// package
const mongoose = require("mongoose");
const config = require("config");
// URI
const uri = config.get("mongoURI");

// Connect MongoDB
const connectDB = async () => {
  try {
    await mongoose.connect(uri, {
      useUnifiedTopology: true,
      useNewUrlParser: true,
    });

    console.log("MongoDB Connected...");
  } catch (error) {
    console.error(error.message);
    process.exit(1);
  }
};

module.exports = connectDB;

이제 server.js 파일로 돌아가서 위에서 작성한 module을 통해 DB를 연결합니다.

connectDB 모듈을 불러와서 실행해줍니다.

server.js

1
2
3
4
5
6
7
8
9
10
11
12
13
const express = require("express");
const connectDB = require("./config/db");
const app = express();
const PORT = process.env.PORT || 5000;

app.get("/", (req, res) => {
  res.send("API RUNNING...");
});

// Connect DB
connectDB();

app.listen(PORT, () => console.log(`Server started on port ${PORT}`));

다음과 같이 MongoDB Connected가 뜨며 성공적으로 연결된 것을 확인할 수 있습니다. 스크린샷 2020-12-14 오후 3 44 00