3주차 몽구스

리프깅·2023년 7월 16일

node.js 스터디

목록 보기
3/3

1. 몽구스 사용하기

몽구스는 몽고디비 작업을 쉽게 할 수 있도록 도와주는 라이브러리이다. 다큐먼트를 사용하므로 ODM(Object Document Mapping)이라고 불린다. 몽고디비에 없는 점들을 보완해 자바스크립트 객체와 몽고디비를 매핑해준다.

1.1 어떤 기능?

  • 스키마 : 몽고디비에 데이터를 넣기 전 노드 서버 단에서 데이터를 한 번 필터링한다. 사용자의 실수를 커버해준다.

  • JOIN 기능 보안 : MySQL의 JOIN 기능을 populate 메서드로 보완하여 관계가 있는 데이터를 보다 쉽게 가져올 수 있다.

1.2 몽구스 사용하기

  • package.json 설치
{
  "name": "learn-mongoose",
  "version": "0.0.1",
  "description": "몽구스를 배우자",
  "scripts": {
    "start": "nodemon app"
  },
  "author": "ZeroCho",
  "license": "MIT"
}
  • 콘솔
    npm i express moran nunjucks mogoose
    npm i -D nodemon

2. 몽고디비 연결하기

  • 루트 디렉터리에 schemas 폴더 생성. 폴더에 iindex.js 파일 생성
const mongoose = require('mongoose')

const connect = () => {
  if (process.env.NODE_ENV !== 'production') {
    mongoose.set('debug', true)
  }

개발 환경일 때만 콘솔을 통해 몽구스가 생성하는 쿼리 내용을 확인할 수 있게 한다.


  mongoose.connect('mongodb://이름:비밀번호@localhost:27017//admin', {
    dbName: 'nodejs',
    useNewUrlParser: true,
    useCreateIndex: true,
  }, (error) => {
    if (error) {
      console.log('몽고디비 연결 에러', error)
    } else {
      console.log('몽고디비 연결 성공')
    }
  })
}

몽구스와 몽고디비를 연결한다. 몽고디비의 주소로 접속을 하며, 주소의 데이터베이스는 admin, 실제 사용하는 데이터베이스는 nodejs이므로 dbName을 사용하여 nodejs를 사용하게 한다.
마지막 콜백 함수로 연결 여부를 확인한다.


mongoose.connection.on('error', (error) => {
  console.error('몽고디비 연결 에러', error)
})
mongoose.connection.on('disconnected', () => {
  console.error('몽고디비 연결이 끊겼습니다. 연결을 재시도합니다.')
  connect()
})

module.exports = connect

에러 발생 시 에러 내용을 기록하고, 연결 종료 시 재연결을 시도하는 코드이다.

profile
대학교 마지막 학기 공부기록

0개의 댓글