모바일/Hybrid

몽고DB + 센차터치 + nodeJS 구축

늘근이 2015. 7. 28. 22:58

아래글은 내가 써놓고도 다소 혼란스럽다 다음의 링크를 확인한다.

http://gorakgarak.tistory.com/413

 

 

참고링크

https://loutilities.wordpress.com/2012/08/10/dogtag-app-in-30-minutes-part-1-node-js-and-mongodb/

https://loutilities.wordpress.com/2012/08/14/mobile-geolocation-app-in-30-minutes-part-2-sencha-touch/


윈도우 설치를 가정한다. 배포시 리눅스


다음의 사이트에서 몽고DB를 설치한다.

http://www.mongodb.com/

쉽게 딸깍딸깍 하면 설치가 된다.


nodeJS도 설치한다.

https://nodejs.org

쉽게 딸깍딸깍 하면 물론 설치가 된다.


이제 서버단 nodeJS에서 몽고디비를 이용해 데이터를 저장하고 뿌려주는 역할을 해야하고,

클라이언트단 센차 터치에서 이를 주소형태로 받아서 저장하고 이용하는 형태로 프로그램을 구성한다.


nodeJS 콘솔에서 다음과 같이 mongoose를 이용한다. mongoose는 nodejs용 Object Data Mapping 프레임워크다. 따라서 Hibernate와 같이 자동적으로 매핑해주고 관리를 해줄 수 있다. 그리고, 프레임워크로는 express라는 놈을 이용하기로 한다. (웹사이트 http://expressjs.com/starter/installing.html)


일단 npm cmd로 다음과 같은 명령어를 쳐서 필요한 파일을 깔도록 한다.


$ mkdir gorakgarak

$ cd gorakgarak


$ npm install mongoose

$ npm install express --save


이제 node XXX.js 형태로 바로 자바스크립트를 실행시켜서 실행시켜볼수 있다.

마찬가지로 gorakgarak 폴더 안에서 app.js 로간단한 웹서버를 하나 띄워볼수 있다.

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

다 됐으면 node app.js 로 실행시켜볼수 있다.


뼈대를 만들기 위해 다음과 같이 express-generator 를 준비한다.

$ npm install express-generator -g

$ express myapp


그럼 다음과 같이 뜬다.



해당 폴더로 가서 

$ npm install

로 의존성 관리를 해준 후,

$ npm start

로 시작해준다.

디버그는 다음과 같다

$ DEBUG=myapp npm start 혹은

> set DEBUG=myapp & npm start

이제 localhost:3000 으로 접속하면 된다.


이제 app.js 에 var app= express() 전에 쓸만한 놈들을 선언한다.

var mongoose = require('mongoose');

var ShopSchema = mongoose.Schema({name:String, desc:String});

var Shop = mongoose.model('ShopModel',ShopSchema);


app.post('/insert', function(request, response, error){
  var shop = new Shop({name:request.body.name,desc:request.body.desc});
  if(error) console.log('error');
  else      response.send('response');
});

이제 shop에 적당한 정보가 저장되었으므로, 몽고 DB에 연결해서 저장하는 일만 하면 된다.

mongoose.connect('mongodb://localhost/myapp');

혹은

mongoose.connect('mongodb://username:password@host:port/database?options...');


설정은 서버를 내렸다 올려야 한다. 몽고디비는 다음과 같은 명령어로 가동한다.

$ mongod

 

cmd 창을 다르게 써야할것이다.