Seongwon Lim

[MongoDB] Mongoose를 이용하여 Node.js와 MongoDB 연결하기 본문

MongoDB

[MongoDB] Mongoose를 이용하여 Node.js와 MongoDB 연결하기

limsw 2022. 5. 9. 20:44
반응형

서론

 

이전 포스팅에서 MongoDB Atlas를 이용하여 클러스터를 생성하는 과정까지 알아보았다. 따라서 클러스터 환경 설정이 되지 않는 분들은 위 포스팅 글을 참고하여 진행하면 좋을 것 같다.

 

이번 포스팅에서는 Node.js 서버를 이용해서 생성한 클러스터에 연결해보는 작업을 할 것이다.

Node.js & MongoDB 연결하기

필자는 데이터베이스를 연결하기 위한 라이브러리로 mongoose를 사용했다.

 

How to install mongoose?What is Mongoose?
MongoDB ODM의 라이브러리 중 하나로 데이터베이스 연결 및 스키마 구성과 스키마를 실제 모델로 적용하는 기능을 제공한다.또한, Promise와 Callback 기능을 제공한다.

  • npm install mongoose —-save 명령어를 통해 모듈을 설치한다.

참고로 필자는 express 환경에서 실습을 진행했으며 express 모듈을 설치하기 위해서는

  • npm install express --save 명령어를 입력하면 된다.

코드 구성하기

서버 실행을 위한 app.js 파일을 다음과 같이 정의했다.

const express = require('express');
const app = express();

const mongoose = require('mongoose');

const DB_ADDRESS = "mongodb+srv://<username>:<password>@cluster0.ab7ss.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"

// 해당 옵션은 mongoose 버전이 6.0 이상인 경우 몽구스 자체가 해당 옵션을 기억하고 있기 때문에 사용하지 않아도 된다.
let mongooseOption = {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false,
};

// mongoose 버전이 6.0 이상인 경우 2번째 파라미터 변수를 삭제
mongoose.connect(DB_ADDRESS, mongooseOption
).then(() => {
    console.log("MongoDB Connect")
}).catch((err) => {
    console.log(err)
});


app.listen(3000, () => {
    console.log("Server is Running!");
});
  • username : 데이터베이스 유저 생성 시 설정한 이름
  • password : 데이터베이스 유저 생성 시 설정한 비밀번호

필자는 예시를 들기 위해 동일 파일에 DB_ADDRESS 라는 데이터베이스 연결을 위한 변수를 생성했지만 실제로는 보안을 위해 .env파일 등에 정의한 뒤 참조하여 값을 읽을 수 있도록 해야한다.

 

위와 같이 코드를 작성하고 node app.js 명령어를 통해 서버를 실행시킨다.


서버 실행 후 생성한 데이터베이스에 정상적으로 연결이 되었다면 아래와 같은 결과를 얻을 수 있다.

연결 성공시 콘솔에 MongoDB Connect 라는 메세지를 반환한다. 만약에 유저 인증에 실패했다면 아래와 같은 에러가 나타날 것이다.

이처럼 Authentication failed 에러를 반환한 것을 확인할 수 있다.

 

다음 포스팅 글에서는 스키마를 이용하여 모델을 정의하는 예제를 살펴볼 것이다.

Comments