더북(TheBook)

코드 5-3 파라미터를 얻어 오는 기능 추가

예제 파일 : monolithic.js

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

var server = http.createServer((req, res) => {
    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; 
            // ➋ 헤더 정보가 json이면 처리
            if (req.headers['content-type'] == "application/json") {
                params = JSON.parse(body);
            } else {
                params = querystring.parse(body);
            }
            onRequest(res, method, pathname, params);
        });
    } else {
        // ➌ GET과 DELETE이면 query 정보를 읽음
        onRequest(res, method, pathname, uri.query);
    }
}).listen(8000);

function onRequest(res, method, pathname, params) {
    res.end("response!");  // ➍ 모든 요청에 "response!" 메시지를 보냄
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.