728x90
반응형
* 회원가입시에 회원 이름, 나이 등의 정보가 데이터베이스에 들어가게 되며, 그 정보들을 관리하기 위해 유저 모델과 스키마를 만들어야 함
1. Model : Schema를 감싸주는 역할
Schema : 테이블을 디자인하기 위한 청사진으로, 각 정보에 대한 하나하나의 역할을 지정해주는 코드임
=> 몽고DB는 NoSQL로 테이블이 없으며, document에 아무거나 넣어도 에러가 나지 않음
=> 먼저 사용자가 작성한 스키마를 기준으로 데이터를 DB에 넣기 전에 먼저 검사하도록 함
=> 스키마에 어긋난 데이터가 있으면 에러를 발생시킴
2. User Model 생성
//몽구스 모듈 가져오기
const mongoose = require('mongoose');
//몽구스 모듈로 스키마 만들기
const userSchema = mongoose.Schema({
name: {
type: String,
maxlength: 50
},
email: {
type: String,
trim: true, //빈칸을 없애줌
unique: 1 //똑같은 이메일을 쓰지 못하게 설정
},
password: {
type: String,
minilength: 5
},
lastname: {
type: String,
maxlength: 50
},
role: { //관리자, 일반유저를 나누기 위해 사용
type: Number, //유저의 role을 숫자로 부여함
default: 0 //임의로 role을 지정하지 않았을 땐 0으로 설정
},
image: String, //{} 오브젝트를 사용하지 않고 단순하게 사용할 수 있음
token: {
type: String //유효성 관리
},
tokenExp: { //token 사용의 유효기간 설정
type: Number
}
})
//model로 감싸주기
const User = mongoose.model('User', userSchema)
//exports
module.exports = {User}
728x90
반응형
'Web > React Node js' 카테고리의 다른 글
노드 기초 강의 (6) - Nodemon 설치 (0) | 2022.02.26 |
---|---|
노드 기초 강의 (5) - BodyParser & PostMan & 회원가입 기능 (0) | 2022.02.26 |
노드 기초 강의 (4) - SSH를 이용한 GITHUB 연결 (0) | 2022.02.26 |
노드 기초 강의 (2) - MongoDB & Mongoose 연결 (0) | 2022.02.26 |
노드 기초 강의 (1) - NODE JS와 EXPRESS JS 다운로드 (0) | 2022.02.26 |
댓글