※ 다크모드로 읽으시는 것을 추천드립니다.
[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의-차이점