Just Do IT!

mongoose 사용하기 본문

개발 공부/Node.js

mongoose 사용하기

MOON달 2024. 1. 5. 15:26
728x90

 

 

 

 

mongoose란?
  • Mongoose 모듈은 MongoDB 라는 NoSQL 데이터베이스를 Node.js로 사용할 수 있도록 하는 확장 모듈 
  • 데이터를 만들고 관리하기 위해 스키마(schema)를 만들고, 그 스키마로 모델을 만들어 데이터 관리 가능
    • mongoDB에는 스키마가 없지만 mongoose를 통해 생성 가능
  • 스키마와 모델을 통하여 data를 불러온 후 객체화 시켜 빠르게 수정함으로써 데이터에 접근 가능하게 만들어줍니다.
  • 모델링 된 문서(document)가 모여있는 Collection을 관리하는 것을 수월하게 만들어 줍니다.

https://www.npmjs.com/package/mongoose

 

mongoose

Mongoose MongoDB ODM. Latest version: 8.0.3, last published: a month ago. Start using mongoose in your project by running `npm i mongoose`. There are 14951 other projects in the npm registry using mongoose.

www.npmjs.com

npm install mongoose --save

 

 

 

 

 

 

 

 

 

 

 

mongoDB와 연결하기

 

const mongoose = require("mongoose");

mongoose
  .connect(config.mongoURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => console.log("MongoDB connected.."))
  .catch((err) => {
    console.error(err);
  });

 

config.mongoURI : config 폴더 안에 mongoDB URI를 지정해주었음

보안이 중요하기 때문에 깃허브에는 개인 정보 관련을 올리지 않도록 해주었다!

원래 저 자리에는 mongoDB와 연결할 수 있는 URI가 적혀 있었다.

 

 

 

 

 

 

 

스키마 생성

 

models 폴더를 생성하고 User.js 파일을 생성해 스키마를 만들었다 (예시임)

const mongoose = require("mongoose");

const userSchema = mongoose.Schema({
  name: {
    type: String,
    maxlength: 50,
  },
  email: {
    type: String,
    trim: true,
    unique: 1,
  },
  password: {
    type: String,
    maxlength: 50,
  },
  role: {
    type: Number,
    default: 0,
  },
  image: String,
  token: {
    type: String,
  },
  tokenExp: {
    type: Number,
  },
});

const User = mongoose.model("User", userSchema);

module.exports = { User };

 

type을 지정할 수 있고 maxlength를 지정할 수도 있다.

강의에서는 회원가입 예시로 스키마를 만들어서 그대로 따라치면서 이해하려고 했다.

 

mongoose의 특정인데, 스키마를 정의할 때 미리 type 등 설정을 해줄수 있다는 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 


아직 강의를 완강한 게 아니지만, mongoose에 대해 복습도 할 겸 블로그에 기록해둔다.

나중에 좀 더 추가할 일이 생기면 추가해야겠다.