채팅 앱 만들기 - DB 세팅

Kang JaeHyeon·2021년 8월 23일
0

채팅 앱 만들기

목록 보기
2/8

Chat Schema

const chatSchema=new Schema({
	room:{
		type:ObjectId,
		required:true,
		ref:'Room',
	},
	user:{
		type:String,
		required:true,
	},
	chat:String,
	gif:String,
	createdAt:{
		type:Date,
		defualt:Date.now,
	},
});

room(채팅방 아이디), user(채팅을 한 사람), chat(채팅 내역), gif(이미지 주소), createAt(채팅 시간) 필드를 추가.
room 필드는 Room 스키마와 연결하여 Room 컬렉션의 ObjetId가 들어가게 한다.
chat/img 속성을 둘 중 하나의 데이터만 저장되기 때문에 required 속성은 제외하였다.

Room Schema

const roomSchema=new Schema({
	title:{
		type:String,
		required:true,
	},
	max:{
		type:Number,
		required:true,
		default:10,
		min:2,
	},
	owner:{
		type:String,
		required:true,
	},
	password:String,
	createdAt:{
		type:Date,
		default:Date.now,
	},
});

title(방 제목), max(최대 수용 인원), owner(방장), password(비밀번호), createdAt(생성 시간) 필드를 추가.
password필드는 required 속성을 추가하지 않고 비밀번호가 있으면 비밀방, 없다면 공개방으로 적용할 것이다.

User Schema

const userSchema=new Schema({
	email:{
		type:String,
		required:true,
	},
	nick:{
		type:String,
		required:true,
		unieuq:true,
	},
	password:{
		type:String,
		required:true,
	},
	createdAt:{
		type:Date,
		defualt:Date.now,
	},
});

email(이메일), nick(닉네임), password(비밀번호), createdAt(생성 시간) 필드를 추가.

0개의 댓글

관련 채용 정보