더북(TheBook)

먼저 HTTP 서버 기능을 만듭니다.

코드 8-1 HTTP 게이트웨이

예제 파일 : gate.js

const http = require('http');
const url = require('url');
const querystring = require('querystring');

var server = http.createServer((req, res) => {    // ➊ HTTP 서버 생성
    var method = req.method;
    var uri = url.parse(req.url, true);
    var pathname = uri.pathname;

    if (method === "POST" || method === "PUT") {  // ➋ POST, PUT 메서드 처리
        var body = "";

        req.on('data', function(data) {
            body += data;
        });
        req.on('end', function() {
            var params;
            // ➌ 헤더가 application/json일 때는 JSON으로 파싱
            if (req.headers['content-type'] == "application/json") {
                params = JSON.parse(body);
            } else {
            // ➍ 헤더가 JSON이 아니면 querystring으로 파싱
                params = querystring.parse(body);
            }

            onRequest(res, method, pathname, params);
        });
    } else {
        onRequest(res, method, pathname, uri.query);
    }
}).listen(8000, () => {
    console.log('listen', server.address());
});

function onRequest(res, method, pathname, params) {  // ➎ 요청 정보 처리
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.