The Pursuit of Happyness

반응형

실행환경 Ubuntu 14.04 LTS / node v0.10.25


다음은 8080 포트로 작동하는 Node.js 로 작성한 http 서비스 코드이다.

Node 의 http, fs 서비스를 사용하였고, 요청한 파일이 있으면 내려보내주고, 아니면 간단한 에러를 출력하는데,

실제는 http 서비스의 header 등을 제대로 설정해 주는 것이 좋지만, 예제를 간단히 만들기 위해서 생략하고 파일만 전달하게 작성했다.

Node.js 에서는 많은 코드가 아래와 같이 callback 함수를 등록하는 형식으로 작성된다.

httptest.js 라는 파일을 생성하여 아래와 같이 입력하고 저장한다.


var http = require('http');
var fs = require('fs');

var server = http.createServer(
        function(req, res) {
                var filePath = './public';
                if (req.url == '/') {
                        filePath += '/index.html';
                } else {
                        filePath += req.url;
                }

                fs.exists(filePath,
                        function(exists) {
                                if (exists) {
                                        fs.readFile(filePath,
                                                function(err, data) {
                                                        if (err) {
                                                                res.end('Server Error');
                                                        } else {
                                                                res.end(data);
                                                        }
                                                }
                                        );
                                } else {
                                        res.end('File Not Exists');
                                }
                        }
                );
        }
);
server.listen(8080);


httptest.js 가 실행되는 위치에 public 이라는 이름의 폴더를 만들고 그 안에 필요한 파일들 (index.html 등) 을 넣어 두면 http 서비스가 작동한다. 

서버의 실행은 nodejs httptest 라고 입력하면 된다.

확인은 웹브라우져를 하나 열고 http://[서버 IP]:8080 식으로 입력하면 된다.


반응형