본문 바로가기

Web/Node.js

Node.js x 몽고DB(MongoDB) Schema 정의하기

mongoose의 Schema 메소드를 이용하면 javascript로도 DB를 정의할 수 있다.

 

프로젝트에 models라는 폴더를 생성한다. (express설치한 서버 폴더 아래에) model은 흔히 MySql DB에서 말하는 테이블과 비슷하다 생각하면 되고, schema는 테이블의 구조라고 생각하면 된다. 먼저 User.js 파일을 생성해서 이 곳에 사용자 정보에 관한 스키마를 정의하자.

const userSchema = mongoose.Schema({
//여기에 사용자 스키마를 각자 프로젝트에 맞게 정의하면 된다.
 
 컬럼1:{
      속성:값
 }
 컬럼2:{
      속성:값
  }
  등등...
  
});


const User = mongoose.model('User', userSchema); //user변수에 정의한 userSchema 스키마를 담아서 사용

module.exports = { //가져다 쓸 수 있도록 exprot 해준다.
  User 
}

 

const mongoose = require('mongoose'); //몽구스를 가져온다.

const userSchema = mongoose.Schema({

 name: { // name컬럼의 
    type: String, //Type은 문자열 형태여야 하고
    maxlength:50 //최대 50자를 넘기지 않는다.
  },
  email: {
    type: String,
    trim: true, //공백을 제거한다
    unique:1 //중복 값을 허용하지 않는다.
  },
  password: {
    type: String,
    minlength:5 //최소 5자 이상.
  },
});


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

module.exports = { //가져다 쓸 수 있도록 exprot 해준다.
  User 
}

이렇게 사용자 스키마를 정의해 준 뒤, 

다시 index.js 로 돌아와서 User을 등록해준다.

const { User } = require('./models/User'); //index.js에서 User스키마를 참고할 수 있도록 require해준다.

 

다음 포스팅에서는 이 User를 이용해 회원가입하는 로직을 구현하도록 하겠습니다.

 

※ 읽어보면 더 좋은 글 => lgphone.tistory.com/92?category=916503

 

Node.js - 몽구스 (Mongoose, 몽고디비 작업 라이브러리)

몽구스는 노드와 몽고디비를 연동해줄 뿐만 아니라 쿼리까지 만들어준다. 몽고디비 자체도 자바스크립트 쿼리를 사용하긴 하지만 이 라이브러리를 이용하면 더 쉽게 만들 수 있다. 몽구스는 시

lgphone.tistory.com