2015년 10월 4일 일요일

Node.js 공부(3) - Express에서 요청 처리

* 해당 글에서 틀린 내용이 있을 수 있습니다. 틀린 내용에 대한 지적이나 더 나은 글을 위한 의견은 언제든지 환영입니다.

* 이번 예제는 생활코딩 JQuery 강좌 중 Ajax 파트의 예제를 참고하였습니다.

1. Express를 통한 프로젝트 생성

이전 글과 동일하게 express-generator를 통해 Express 프로젝트를 하나 생성합니다. 다만 Express를 처음 설치 템플릿 엔진을 Jade 대신 EJS를 사용하여 생성하도록 하겠습니다. 그 이유는 EJS가 기존 html과 유사하기 때문입니다. 생성 방법은 아래와 같습니다.
$ express MyApp --ejs
그럼 아래와 같이 EJS 템플릿 엔진으로 프로젝트가 생성이 됩니다.

2. 클라이언트 사이드

클라이언트 사이드 코드는 생활코딩 강좌의 예제와 동일합니다. 프로젝트의 views 폴더 밑의 index.ejs 파일에 아래의 코드와 같이 버튼을 하나 만들고 그에 대한 클릭 이벤트 처리를 해줍니다. 클릭 이벤트 발생 시 text 타입의 input 태그의 값을 JSON에 담아 POST 방식으로 서버 쪽으로 전달합니다.
<html>
  <head>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <script src='http://code.jquery.com/jquery-latest.js'></script>
  </head>
  <body>
    <input type="text" id="msg" />
    <input type="button" id="ajax_test" value="ajax_test" />
    <div id="result"></div>
    <script>
      $('#ajax_test').click( function() {
          $('#result').html('');
          $.ajax({
              url: 'http://localhost:3000/ajax',
              dataType: 'json',
              type: 'POST',
              data: {'msg':$('#msg').val()},
              success: function(result) {
                  if ( result['result'] == true ) {
                      $('#result').html(result['msg']);
                  }
              }
          });
      })
    </script>
  </body>
</html>

3. 서버 사이드(node.js, express) 모듈 작성

Express에서 요청을 처리합니다. 일단 클라이언트에서의 요청을 처리할 모듈을 하나 만들어줍니다. 저는 프로젝트의 routes 폴더 밑에 ajax.js라는 파일을 작성하였습니다. 코드는 단순히 전달받은 msg의 값에 [에코]라고 붙여주고 이를 반환해줍니다. 추가적으로 result라는 키 값에 true를 담아줍니다.
var express = require('express');
var router = express.Router();

/* POST 호출 처리 */
router.post('/', function(req, res, next) {
    console.log('POST 방식으로 서버 호출됨');
    var msg = req.body.msg;
    msg = '[에코]' + msg;
    res.send({result:true, msg:msg});
});

module.exports = router;

4. 서버 사이드(node.js, express) 모듈 호출 설정

이제 작성한 ajax.js 모듈을 클라이언트에서 호출할 수 있도록 설정합니다. app.js 파일을 열어서 일단 상단 부분에 다음과 같은 코드를 추가합니다.
var ajax = require('./routes/ajax');
이는 해당 모듈을 불러오는 코드입니다. 이렇게 불러온 모듈을 url을 통해 호출할 수 있도록 설정해줍니다.
app.use('/ajax', ajax);
위와 같이 코드를 추가하면 http://localhost:3000/ajax라는 URL을 통해서 우리가 작성한 ajax.js 모듈을 호출할 수 있습니다.

5. 테스트

이제 http://localhost:3000으로 접속을 하여 테스트를 하면 다음과 같이 동작을 합니다.

2015년 8월 16일 일요일

Node.js 공부(2) - npm을 통한 Express Generator 설치

* 해당 글에서 틀린 내용이 있을 수 있습니다. 틀린 내용에 대한 지적이나 더 나은 글을 위한 의견은 언제든지 환영입니다.

1. npm이란?

npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing
npm은 Node.js에서 사용되는 모듈을 패키지로 모아놓고 이를 관리해주는 툴이라고 생각하면 됩니다. Node.js를 통해 개발 시 npm에 등록된 모듈들을 이용하여 개발을 할 수 있습니다. Ubuntu 사용자라면 쉽게 apt를 통한 software 설치를 생각하면 쉬울 것 같습니다. npm은 보통 Node.js 설치 시 함께 설치되기 때문에 별도로 설치할 필요는 없습니다. Node.js 설치 후 npm이 설치되어 있는지 확인할려면 다음과 같은 명령어를 통해 확인이 가능합니다.
$ npm -v
npm에 대한 더 자세한 내용은 https://www.npmjs.com/ 해당 사이트를 확인하시면 됩니다.

2. Express란?

Express는 Node.js에서 사용할 수 있는 Web Framework입니다. 개발자들은 Express를 통해 Node.js 환경에서 Web page를 손쉽게 개발할 수 있습니다. 앞으로의 내용에서는 Express를 통해 Node.js 환경에서 간단한 웹페이지를 구현할 예정입니다. Express에 대한 더 자세한 내용은 http://expressjs.com/ 해당 사이트를 확인하시면 됩니다.

3. npm을 통한 express-generator 설치

express-generator는 Express 웹프레임워크를 이용한 프로젝트를 손쉽게 생성하기 위한 Express Application Generator Tool입니다. 해당 툴을 이용하여 Express를 사용할 수 있도록 설정된 빈 프로젝트를 손쉽게 생성할 수 있습니다. 해당 툴의 설치는 npm을 통해 설치를 할 수 있으며 Ubuntu 환경에서는 다음과 같은 명령어를 통해 설치가 가능합니다.
$ sudo npm install express-generator -g
express-generator가 성공적으로 설치가 되었다면 다음 명령어를 통해 옵션을 확인해보면 됩니다.
$ express -h

4. express-generator를 통한 빈 프로젝트 생성

이제 설치한 express-generator를 통해 빈 프로젝트를 하나 생성해보겠습니다. myapp이라는 프로젝트를 생성하길 원한다면 다음과 같은 명령어를 실행합니다.
$ sudo express myapp
해당 명령어를 실행하면 다음과 같이 프로젝트가 생성됩니다.
이제 myapp 프로젝트에서 사용할 모듈들을 npm을 통해서 설치합니다. 위 그림에서 알려주는 것과 같이 다음과 같은 명령어를 실행하면 됩니다.
$ cd myapp
$ sudo npm install
이제는 빈 프로젝트를 실행할 차례입니다. 마찬가지로 express-generator 설치 시 알려주었던 명령어를 실행하면 됩니다.
$ npm start
프로젝트가 실행되는 것을 확인한 다음 http://localhost:3000/를 접속하면 됩니다.

이상으로 npm을 통해 Express Generator를 설치하고 이를 통해 빈 프로젝트를 생성하는 것까지 보았습니다. 다음 시간부터는 간단한 웹페이지를 만들어 보겠습니다.

2015년 7월 7일 화요일

Node.js 공부(1) - Ubuntu에서 Node.js 설치

1. Ubuntu에서 Node.js 설치

Ubuntu 14.04를 기준으로 한다.
$ sudo apt-get update
$ sudo apt-get install nodejs
참 쉽다. 다른 배포판의 경우 Installing Node.js via package manager 글을 참고하도록 한다.