일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- c++
- data science
- 우리들교회
- 인공지능
- Deep learning
- Artificial Intelligence
- 딥러닝
- nodeJS
- 김양재 목사님
- probability
- 빅 데이터
- 몽고디비
- node.js
- 김양재 목사
- Big Data
- 빅데이터
- WebGL
- 빅 데이타
- 빅데이타
- 확률
- 데이터 과학
- 김양재
- Statistics
- R
- MongoDB
- openCV
- Machine Learning
- 통계
- No SQL
- 주일설교
Archives
- Today
- Total
Scientific Computing & Data Science
[WebApp / Express] 간단한 MongoDB Middleware 만들기 본문
by Geol Choi |
이번 글에서는 MongoDB의 ODM(Object Data Mapping) 툴인 mongoose를 이용하여 간단한 MongoDB Middleware를 만들어 보도록 한다.
Part 1 - Express 프로젝트 생성
우선 Express 프로젝트를 생성한다:
$ express my-project && cd my-project
생성된 프로젝트 경로에 mongoose ODM을 설치한다:
$ npm install mongoose
app.js에서 Server를 생성한다 (포트번호는 3000으로 지정하였다):
[{EXPRESS_ROOT}/app.js]
1 2 3 4 5 6 7 8 | ////////////////////////////////////////////////////// // ------- creates Server ------- // port setup app.set( 'port' , process.env.PORT || 3000); var server = app.listen(app.get( 'port' ), function() { console. log ( 'Express server listening on port ' + server.address().port); }); |
Part 2 - mongoose connection 설정
Mongoose Connection을 하기에 앞서 MongoDB를 실행한다. 예를 들어, Terminal을 실행하여 다음 명령을 입력한다:
$ mongod --dbpath {YOUR_DB_PATH}
우선 mongoose를 로딩하고, Mongoose Connection을 위해 URI는 다음과 같이 정의하였다:
[{EXPRESS_ROOT}/app.js]
1 2 3 4 5 6 7 8 9 10 11 12 13 | var mongoose = require( 'mongoose' ); ... ////////////////////////////////////////////////////// // ------- mongoose connections ------- mongoose.connect(uri, function(req, res) { console. log ( 'mongodb users connected' ); }); ... |
Part 3 - 간단한 mongoose 미들웨어 작성
Data Schema는 사용자의 ID, 이름, 패스워드로 구성하였으며, 다음과 같이 코드를 작성한다:
[{EXPRESS_ROOT}/routes/mongodb.js]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | var mongoose = require( 'mongoose' ); var myCount = 0; // Users Schema var UserSchema = mongoose.Schema({ userId: String, userName: String, password: String }); // compiles our schema into a model var Users = mongoose.model( 'Users' , UserSchema); ////////////////////////////////////////////////////////////////////// // insert an user exports.InsertUser = function(userId, userName, userPwd) { var myUser = new Users({ userId: userId, userName: userName, password: userPwd }); // save an user myUser.save(function(err) { console. log ( 'A new user is inserted.' ); console. log ( '' ); }); }; ////////////////////////////////////////////////////////////////////// // remove the user exports.RemoveUserById = function(userId) { // find the user Users.findOne({userId: userId}, function(err, data) { if (data != null) { console. log ( 'The user is found.' ); console. log ( '' ); Users. remove ({userId: userId}, function(err, data) { console. log ( 'The user is removed.' ); console. log ( '' ); }); } else { console. log ( 'Cannot find the user.' ); console. log ( '' ); } }); }; ////////////////////////////////////////////////////////////////////// // update the user exports.UpdateUser = function(userId, newData) { // find the user Users.findOne({userId: userId}, function(err, data) { if (data != null) { console. log ( 'The user is found.' ); console. log ( '' ); Users.update({userId: userId}, newData, function(err, data) { console. log ( 'Successfully changed user account.' ); console. log ( '' ); }); } else { console. log ( 'Cannot find the user.' ); console. log ( '' ); } }); }; ////////////////////////////////////////////////////////////////////// // user counts exports.UserCounts = function() { Users.count({}, function(err, count) { console. log ( 'count: ' + count); myCount = count; }); return myCount; }; |
User를 등록(insert), 삭제(remove) 및 정보를 업데이트(update)하는 함수로 구성하였다.
Part 4 - 테스트
간단한 테스트를 해보자. app.js에 다음 코드를 생성한다.
[{EXPRESS_ROOT}/app.js]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | app.get( '/insertuser' , function(req, res, next) { mongodb.InsertUser( 'cinema4d' , 'gchoi' , '12345' ); res.send( 'success: the user inserted' ); }); app.get( '/removeuser' , function(req, res, next) { mongodb.RemoveUserById( 'cinema4d' ); res.send( 'success: the user removed' ); }); app.get( '/updateuser' , function(req, res, next) { var newData = { userId: 'c4d' , userName: 'gulae' , password: 'asdf' }; mongodb.UpdateUser( 'cinema4d' , newData); res.send( 'success: the user updated' ); }); app.get( '/usercount' , function(req, res, next) { res.send( 'User counts: ' + mongodb.UserCounts()); }); ... |
웹브라우저 주소창에 다음을 각각 입력하고, MongoDB를 통해 데이터를 확인한다:
127.0.0.1/insertuser
127.0.0.1/removeuser
127.0.0.1/updateuser
127.0.0.1/usercount
'Programming > Web App' 카테고리의 다른 글
[WebApp / Node Webkit] Example 1 - HelloWorld (0) | 2016.01.20 |
---|---|
[WebApp / Express] Cookie를 사용하여 데이터 저장하기 (2) | 2015.12.26 |
[Web App / Express] Express에서 서버 열기 (0) | 2015.12.13 |
[WebApp / CreateJS] 간단한 오브젝트 생성 + 터치 무브 + 사운드 재생 (0) | 2015.12.09 |
[WebApp / Express] HTTP POST 방식을 통한 Form 데이터 전송 (0) | 2015.12.05 |
Comments