1. mongoose library를 사용하기 위해서는 일단 작업할 폴더에 lib폴더를 만들어줘야 합니다.

C:\Users\VannsKang\node\test> md lib
C:\Users\VannsKang\node\test> cd lib
C:\Users\VannsKang\node\test\lib>

2. 이제 lib폴더에 model.js를 만들어줍니다. 커맨드를 통해 만들어도 되지만 그냥 윈도우 상에서 만들어도 상관없으니 각자 편한 방법으로 만드세요. 이제 살펴봐야할 것은 model.js입니다.

// mongoose
var mongoose = require('mongoose');
// objectID on mongoDB
var ObjectId = mongoose.Schema.ObjectId;

3. 일단 mongoose를 선언해주고, objectID를 선언해줍니다. objectID는 나중에 만들 데이터 하나 하나마다의 고유의 값입니다. 나중에 데이터를 검색할 때나 할때 유용하게 쓰이는 값입니다.

4. 이제 데이터의 모델을 그려볼까요? 데이터에 어떤 값이 들어갈지 설정해보자구요!

exports.User = mongoose.model('user', {
});

5. 일단 mongoose를 이용해 데이터를 그릴 함수명을 정해줍니다. 나중에 routing을 통해 불러올 함수 이름을 지정해주는 건데, 임의로 설정할 수 있지만 나중에 헷갈리지 않도록 직관적인 이름이 좋겠지요. 저는 User라고 선언해 주었습니다.

6. 이제 model이라는 mongoose 메소드를 통해 데이터를 설정해줍니다. 저는 데이터 자체의 이름을 user라 설정해 주었습니다. 역시나 직관적인게 좋기 때문이죠! 나중에 이를 mongoDB를 통해서 찾을때는 users로 찾습니다. users.find()이런 방식으로요. user란 데이터가 모여있는 것들이니깐 users라고 생각하면 이해하기 편하겠죠?

exports.User = mongoose.model('user', {
	// default data elements: date, time and so on
	// sign up date
	created_at: {
		type: Date,
		default: Date.now
	},
	// latest sign in date
	updated_at: {
		type: Date,
		default: Date.now
	}, 
	// custom elements
	// name
	name: {
		type: String,
		require: true
	},
	// email
	email: {
		type: String,
		require: true,
		unique: true
	},
	// password
	password: {
		type: String,
		require: true
	}
});

7. 이제 data안에 들어갈 내용들을 설정해줍니다. 기본적으로 data안에 들어가는 내용들이 있는데 날짜나 시간같은 것들이 그런 것들입니다. 이것을 이용해 가입날짜와 마지막 로그인 날짜를 저장할 수 있는데, 처음 2가지가 순서대로 가입날짜, 마지막 로그인 날짜를 선언해주는 것입니다.

8. 나머지 값들은 사용자를 만들때 필요한 data를 선언해주는 겁니다. 사용자를 만들때 이름과 이메일, 패스워드만 요구할 생각이니 이렇게 설정하면 됩니다.

9. 여기서 type은 data 값의 형식이고, require은 사용자를 만들때 꼭 필요한 data 값일때, unique는 다른 data 값과 중복되면 안되는 값, 예를 들어 아이디 등의 값에 대해서 사용합니다.

※ 이 내용은 node.js, mongoDB 스터디페이지 codeMembersPage에서 진행되는 내용을 정리한 것입니다. 모든 저작권은 본인에게 있으며 상업적 이용, 컨텐츠 변경 가능하며 저작자 표기만 해주시면 됩니다.


WRITTEN BY
강수명 Vanns Kang
하고 싶은거 하고 사는 조금은 잘 빡치는 평화주의자