http://net.tutsplus.com/tutorials/javascript-ajax/build-a-complete-mvc-web-site-with-expressjs/
http://theholmesoffice.com/getting-ready-for-scalability-creating-an-mvc-framework-for-our-node-js-page/
2013년 9월 23일 월요일
2013년 9월 21일 토요일
몽구스(mongoose) 사용하기 - Tutorial
2013년 9월 20일 금요일
MongoDB 설치하기
공식 홈페이지 : http://www.mongodb.org/
다운로드 : http://www.mongodb.org/downloads
공식 문서 : http://docs.mongodb.org/manual/
윈도우 설치 가이드 : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
몽구스(mongoose) 사용하기 - getting started
공식 홈페이지 : http://mongoosejs.com/
Getting Started : http://mongoosejs.com/docs/index.html
아래 예제는 몽구스 공식 홈페이지에 나와있는 예제입니다. 아래 내용 참고해서, 몽구스로 개발을 어떻게 하는지 알아봅시다.
몽고DB와 Node.js는 이미 설치 되었다고 가정합니다.
몽구스를 npm명령어를 통해 설치 해봅시다.:
자, 유스케이스를 하나 만들어볼까요? 우리는 털이 복슬복슬하게 나 있는 아기 고양이를 무척 좋아하고, 몽고DB 안에서 만난 모든 새끼 고양이에 대해서 기록하고 싶다고 합시다. 첫 번째로 할 일은 '몽구스'를 우리 프로젝트에 추가하고, 로컬 환경에 설치되어 있는 몽고DB의 'test' 데이터베이스와 커넥션을 획득하는 것이겠죠?
이제 우리는 커넥션이 맺어지기를 기다리고 있습니다. 그리고 커넥션 획득 성공 여부를 확인하고, 알수 있어야 합니다. db.on('error', .. 을 통해 에러가 발생하면 콘솔에 에러 로그를 출력합니다. db.once('open', 을 사용하면, 커넥션을 획득했을 때, 어떤 동작을 해야 할지, 콜백 함수에 몀시할 수 있습니다.
커넥션을 획득하면, 콜백함수가 호출되겠죠? 간단하게, 이 콜백함수에 앞으로 소개하는 모든 소스를 담도록 하겠습니다.
몽구스에서는 모든 데이터가 스키마로 부터 조회 할 수 있습니다. 우리의 아기고양이 스키마를 한번 만들어 볼까요?
좋습니다. name 이라는 한 개의 속성을 가진 스키마를 생성하였습니다. 이제 이 스키마를 모델안으로 넣어볼까요?
모델은 우리가 만든 문서를 의미하는 클래스 입니다. 이 경우에는, 각 문서는 우리가 선언한 스키마에 명시한 속성값과 행위들을 지니고 있는 아기고양이가 되겠군요.
저 밖에 길가에서 만난 작은 사나이를 뜻하는 아기고양이 문서를 하나 만들어 봅시다. 변수명은 'silence'로 하죠..
아기 고양이는 '야옹'하고 울기 마련이죠. 우리의 문서에 어떻게 우는 기능을 추가 할 수 있는 지 확인 해 봅시다. 스키마를 모델안에 집어 넣기 전에 이 작업을 해야 겠죠? 주의 하시기 바랍니다.
이제 아기 고양이와 대화를 할 수 있게 되었군요!! 하지만, 아직 우린 아무것도 몽고DB에 저장하지 않았습니다. 각 문서는 'save' 함수를 통해 데이터베이스에 저장할 수 있습니다. 첫 번째 인자값은 에러발생시에 수행되는 콜백 함수 입니다.
위에서 언급했던 유스케이스를 다시 떠올려 볼까요? 우리는 우리가 만난 모든 아기 고양이를 기록하고 싶습니다. 우리는 'find'함수를 사용하여, 'Kitten' 모델을 통해 모든 아기고양이 문서에 접근할 수 있습니다.
또한, 데이터베이스에 있는 모든 아기고양이를 콘솔에 로깅 할 수 도 있습니다. 물론, 아래와 같이 이름에 필터링을 걸 수도 있겠죠. 더 다양한 몽구스의 검색 용법에 대해 궁금하신 분들은 다음 링크를 확인 해 보기 바랍니다. http://mongoosejs.com/docs/queries.html
이 줄은 'Fluff'로 시작되는 모든 아기 고양이를 찾아내서, 두 번째 인자값에 포함된 콜백 함수를 수행하게게 됩니다.
Getting Started : http://mongoosejs.com/docs/index.html
아래 예제는 몽구스 공식 홈페이지에 나와있는 예제입니다. 아래 내용 참고해서, 몽구스로 개발을 어떻게 하는지 알아봅시다.
몽고DB와 Node.js는 이미 설치 되었다고 가정합니다.
몽구스를 npm명령어를 통해 설치 해봅시다.:
$ npm install mongoose
자, 유스케이스를 하나 만들어볼까요? 우리는 털이 복슬복슬하게 나 있는 아기 고양이를 무척 좋아하고, 몽고DB 안에서 만난 모든 새끼 고양이에 대해서 기록하고 싶다고 합시다. 첫 번째로 할 일은 '몽구스'를 우리 프로젝트에 추가하고, 로컬 환경에 설치되어 있는 몽고DB의 'test' 데이터베이스와 커넥션을 획득하는 것이겠죠?
// getting-started.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
이제 우리는 커넥션이 맺어지기를 기다리고 있습니다. 그리고 커넥션 획득 성공 여부를 확인하고, 알수 있어야 합니다. db.on('error', .. 을 통해 에러가 발생하면 콘솔에 에러 로그를 출력합니다. db.once('open', 을 사용하면, 커넥션을 획득했을 때, 어떤 동작을 해야 할지, 콜백 함수에 몀시할 수 있습니다.
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
// 성공!! });
커넥션을 획득하면, 콜백함수가 호출되겠죠? 간단하게, 이 콜백함수에 앞으로 소개하는 모든 소스를 담도록 하겠습니다.
몽구스에서는 모든 데이터가 스키마로 부터 조회 할 수 있습니다. 우리의 아기고양이 스키마를 한번 만들어 볼까요?
var kittySchema = mongoose.Schema({
name: String
})
좋습니다. name 이라는 한 개의 속성을 가진 스키마를 생성하였습니다. 이제 이 스키마를 모델안으로 넣어볼까요?
var Kitten = mongoose.model('Kitten', kittySchema)
모델은 우리가 만든 문서를 의미하는 클래스 입니다. 이 경우에는, 각 문서는 우리가 선언한 스키마에 명시한 속성값과 행위들을 지니고 있는 아기고양이가 되겠군요.
저 밖에 길가에서 만난 작은 사나이를 뜻하는 아기고양이 문서를 하나 만들어 봅시다. 변수명은 'silence'로 하죠..
var silence = new Kitten({ name: 'Silence' })
console.log(silence.name) // 'Silence'
아기 고양이는 '야옹'하고 울기 마련이죠. 우리의 문서에 어떻게 우는 기능을 추가 할 수 있는 지 확인 해 봅시다. 스키마를 모델안에 집어 넣기 전에 이 작업을 해야 겠죠? 주의 하시기 바랍니다.
// NOTE: methods must be added to the schema before compiling it with mongoose.model()
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: "I don't have a name"
console.log(greeting);
}
var Kitten = mongoose.model('Kitten', kittySchema)
함수는 스키마의 'methods' 속성값에 추가한 다음, 모델 프로토타입에 추가되었습니다. 그리고 각 문서에 노출되었습니다.
이제 아기 고양이들하고 대화를 해봐야 겠죠? 'fluffy'라는 이름의 아기 고양이를 변수에 할당하고 위에서 추가한 함수를 호출해봅시다.
이제 아기 고양이들하고 대화를 해봐야 겠죠? 'fluffy'라는 이름의 아기 고양이를 변수에 할당하고 위에서 추가한 함수를 호출해봅시다.
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak() // "Meow name is fluffy"
이제 아기 고양이와 대화를 할 수 있게 되었군요!! 하지만, 아직 우린 아무것도 몽고DB에 저장하지 않았습니다. 각 문서는 'save' 함수를 통해 데이터베이스에 저장할 수 있습니다. 첫 번째 인자값은 에러발생시에 수행되는 콜백 함수 입니다.
fluffy.save(function (err, fluffy) {
if (err) // TODO handle the error
fluffy.speak();
});
위에서 언급했던 유스케이스를 다시 떠올려 볼까요? 우리는 우리가 만난 모든 아기 고양이를 기록하고 싶습니다. 우리는 'find'함수를 사용하여, 'Kitten' 모델을 통해 모든 아기고양이 문서에 접근할 수 있습니다.
Kitten.find(function (err, kittens) {
if (err) // TODO handle err
console.log(kittens)
})
또한, 데이터베이스에 있는 모든 아기고양이를 콘솔에 로깅 할 수 도 있습니다. 물론, 아래와 같이 이름에 필터링을 걸 수도 있겠죠. 더 다양한 몽구스의 검색 용법에 대해 궁금하신 분들은 다음 링크를 확인 해 보기 바랍니다. http://mongoosejs.com/docs/queries.html
Kitten.find({ name: /^Fluff/ }, callback)
이 줄은 'Fluff'로 시작되는 모든 아기 고양이를 찾아내서, 두 번째 인자값에 포함된 콜백 함수를 수행하게게 됩니다.
Congratulations축하드립니다!
2013년 9월 16일 월요일
피드 구독하기:
글
(
Atom
)