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)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tang's
BACKEND/MongoDB

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

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
    탕탕한 탕진의 기술 블로그!

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.