범용 언어로서의... 서버사이드 자바스크립트 node.js
node.js 설치 - Hello, World~!
node.js v0.4 released - Second Stable Branch of Node

이번에는 첫번째 포스팅의 Outsider 님 슬라이드에 있는 간단한 예제들을 직접 실행해 보겠습니다.
그 이전에 우선 첫번째 예제로는 아주 간단한 웹서버를 만들어 브라우저에서 'Hello, World~!!' 를 외쳐 보겠습니다. ^^

 예제 1 : Simple Web Server

var http = require('http');

http.createServer(function(request, response) {
   response.writeHead(200, {'Content-Type': 'text/html'});
   response.write('Hello, World~!!');
   response.end();
}).listen(8124);

console.log('Server running at http://localhost:8124/');
- 3 라인 : 새로운 웹서버 객체를 생성하여 반환. 인자로 사용자 콜백 함수를 anonymous function 형태로 전달.
- 4 라인 : response header 를 전송.
- 5 라인 : string 'Hello, World~!!'를 전송.
- 7 라인 : listener 가 request 이벤트가 발생할때마다 콜백 함수를 실행.



 예제 2 : Timers - setTimeout

var sys = require('sys');

setTimeout(function() {
   sys.puts('world');
}, 2000);

sys.puts('hello');
- 3 라인 : timers 객체 실행. 두번째 인자인 delay 시간 후에 첫번째 인자인 콜백 함수를 실행.
- 7 라인 : 먼저 'hello' 를 출력 후 4라인의 'world'가 출력됨.



 예제 3 : Timers - setInterval, Signal Events

var puts = require('sys').puts;

setInterval(function() {
   puts('hello');
}, 500);

process.on('SIGINT', function() {
   puts('good-bye');
   process.exit(0);
});

- 3 라인 : timers 객체 실행. 두번째 인자인 delay 시간마다 첫번째 인자인 콜백 함수를 반복 실행.
- 7 라인 : signal events 'SIGINT' 발생 시(Control-C) 8라인에서 'good-bye' 출력 후 9라인에서 프로세스 종료.



 예제 4 : net

var tcp = require('net');

var server = tcp.createServer();

server.on('connection', function(e) {
   e.write('hello!\n');
   e.end();});

server.listen(8000);
- 3 라인 : 새로운 tcp 서버 객체를 생성.
- 5 라인 : 'connection' 이벤트 발생 시 6라인에서 string 'hello!\n' 를 전송.
- 10 라인 : 3라인에서 생성한 서버에 listener 실행.
- 확인은 Cygwin Bash Shell 을 하나 더 실행하거나 Command 창 실행 후 8000 포트로 telnet 실행. "telnet localhost 8000"





 예제 5 : File System

var stat = require('fs').stat,
    puts = require('sys').puts;

stat('/etc/passwd',   function(err, data) {
   if(err) throw err;
   puts('modified : ' + data.mtime + '\n');
});
- 4 라인 : 첫번째 인자로 전체 파일명을 두번째 인자로 콜백 함수를 전달.
- 7 라인 : 파일의 최종 수정일시를 출력



var fs = require('fs'),
    puts = require('sys').puts;

fs.watchFile('./test.txt',
   function() {
      puts('파일을 바꾸셨군요.');
      process.exit(0);
   }
);
- 4 라인 : 첫번째 인자로 전달한 파일이 수정될 경우 두번째 인자로 전달된 콜백 함수가 실행





위와 같이 모듈별로 간단한 예제들을 살펴보았습니다.

앞으로는 우선 node.js 매뉴얼(api documents)을 보고 싶은데... 언어의 장벽이 ㅜㅜ;;
역시... 영어 공부도 열심히 해야합니다. ^^
저작자 표시 비영리 변경 금지
신고
Posted by JuHoi