Tang's
탕로그
Tang's
전체 방문자
오늘
어제
  • 분류 전체보기 (35)
    • FRONTEND (26)
      • JavaScript (6)
      • Algorithm (2)
      • CSS (2)
      • React (5)
      • Next.js (1)
      • 기타 (4)
      • 임시 (1)
      • 백만가지 ERROR (4)
      • 면접준비 (0)
      • project (1)
    • BACKEND (2)
      • Node.js (1)
      • MongoDB (1)
    • TODAY (7)
      • 생각 (1)
      • 회고 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프론트엔드 개발자 회고
  • Next.js 14
  • 프론트엔드 면접질문
  • Turbopack
  • jest react-query
  • React
  • jest nextjs typescript
  • jest
  • nextjs metadata
  • 폴더 권한 설정
  • linux 폴더 권한
  • nextjs ci/cd
  • docker-compose ci/cd
  • yarn create next-app
  • 신입 프론트엔드 개발자 회고
  • partial prerendering
  • 폴더 권한 변경
  • ec2 권한 설정
  • 개발자 회고
  • Nextjs docker
  • 신입 프론트엔드 개발자
  • jest recoil
  • display:flex
  • modal 제어
  • server action
  • nginx-proxy-manager
  • jest 초기 세팅
  • 회고
  • 폴더 권한 확인
  • props와 state 차이점

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tang's

탕로그

BACKEND/MongoDB

[Mongoose] 외부에서 정의한 Schema 사용하기

2022. 8. 19. 23:35

models 폴더의 schema.js

// ./models/schema.js

const mongoose = require('mongoose');
const { Schema } = mongoose;
const ChatSchema = new Schema({
  userId: { type: String },
  text: { type: String, createdAt: { type: Date, default: Date.now, immutable: true }},
},
{ versionKey: false })

module.exports = mongoose.model('Chat', ChatSchema);

 

module.exports = mongoose.model('Chat', ChatSchema);

마지막줄로 등록한 모델을 외부에서 사용할 수 있게끔 export 해준다.

 

// src/index.js

const Chat = require('./models/schema');

socket.on('SEND_MESSAGE', function(data) {
    io.emit('SEND_MESSAGE', data);
  
    let chat = new Chat({text: data.message});
    chat.save(function (err, data) {
      if(err) {
        console.log('error');
      }
      console.log('message is inserted');
    });
  })

 

 

src폴더의 index.js에서 사용하려면

const Chat = require('./models/sample/schema');
 
1. require()은 module.exports를 리턴받기 때문에 Schema를 내보낸 경로를 require 해준다.
 
2. 새로운 document를 생성하고,
 
3. mongoose의 save() 메서드를 사용해 db에 저장한다. (save 메서드는 promise객체를 반환한다)

 

    Tang's
    Tang's
    탕탕한 탕진의 기술 블로그!

    티스토리툴바