※ 다크모드로 읽으시는 것을 추천드립니다.
[mongoose](https://www.npmjs.com/package/mongoose) 모듈과 [mongodb](https://www.npmjs.com/package/mongodb) 모듈이 있습니다.mongoose 모듈을 활용하여 연동합니다.mongodb 모듈과 mongoose 모듈 차이mongodb 모듈과 mongoose 모듈은 모두 Node.js에서 MongoDB를 연동하기 위한 모듈입니다.mongodb 모듈
mongoose 모듈
mongoose 모듈은 MongoDB를 지원하는 Node.js의 확장 모듈입니다.mongoose는 MongoDB의 ODM입니다.mongoose에는 내부적으로 mongodb 모듈이 포함되어 있다고 볼 수 있습니다.mongoose 모듈을 설치합니다.# 프로젝트 Root로 이동
> cd "프로젝트 디렉터리 명"
# mongoose 모듈 설치
> npm install mongoose
# controller 폴더 생성
> mkdir controller

mongoose 모듈 통해 MongoDB 연결 부분 소스 코드를 작성합니다.controller/mongodb-connector.js
# controller/mongodb-connector.js
const mongoose = require("mongoose");
const connect = () => {
mongoose.connect("mongodb://ID:Password@Host:27017/DB명?authSource=admin");
};
mongoose.connection.on("error", (error) => {
console.error("MongoDB Connection Error", error);
});
mongoose.connection.on("disconnected", () => {
console.error("MongoDB Disconnected, retry...");
connect();
});
module.exports = connect;
1번 라인: mongoose 모듈을 상수 “mongoose”에 할당합니다.
3 ~ 5번 라인: MongoDB 연결을 모듈화 합니다.
4번 라인: MongoDB URL을 통해 mongoose를 연결합니다.
7 ~ 9번 라인: mongoose 연결에서 에러 발생 시 Console 출력을 통해 에러 정보를 알 수 있습니다.
11 ~ 14번 라인: mongoose 연결이 끊어졌을 경우 Console 출력을 통해 알리며, 재연결을 시도합니다.
16번 라인: 모듈화한 MongoDB 연결을 외부로 내보냅니다.
Node.js와 연동하려는 MongoDB Collection에 대한 스키마를 작성합니다.
“schemas” 폴더와 스키마 소스 코드 파일 (schemas/*.js)을 생성합니다.
# schemas 폴더 생성
mkdir schemas

schemas/book.js
# schemas/book.js
const mongoose = require("mongoose");
const { Schema } = mongoose;
const bookSchema = new Schema({
name: {
type: String,
required: true,
unique: true,
default: true
},
author: {
type: String,
required: true
},
insertDate: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('book', bookSchema, 'book');
https://devlog-wjdrbs96.tistory.com/224
https://velog.io/@soshin_dev/Node.js-Mongoose-를-사용해보자
https://velog.io/@shrup5/MongoDb와-Mongoose의-차이점