[node.js] 기본적인 웹 서버 템플릿
node.js용 모듈로 express같은 걸출한 웹서버 프레임웍이 있긴 하지만 일단 기본적인건 알아두는게 좋을 것 같다. 그래서 메모.
공식 사이트 예제 소스에도 관련 내용이 있지만 POST 등으로 전해지는 데이터에 대한 건 없다. 그래서 그 부분을 추가한 것이다.
결국 'end'이벤트에서 할 일을 하고 res(responseObject)에 데이터를 전달하면 되겠다.
responseObject의 메소드로 setHeader라는게 있는데, 모 사이트 예제에서는 sendHeader라는 걸 쓰고 있어서 혼란이 있었다. 하여간 setHeader가 맞는 메소드이고 첫 번째 인자(HTTP Status Code)는 숫자가 아닌 문자열 타입으로 넘겨줘야 한다. 숫자로 넘기면 에러가 뿅~
공식 사이트 예제 소스에도 관련 내용이 있지만 POST 등으로 전해지는 데이터에 대한 건 없다. 그래서 그 부분을 추가한 것이다.
var http = require('http'); http.createServer(function(req, res) { var body = ''; req.addListener('data', function(chunk) { body += chunk; }); req.addListener('end', function() { res.setHeader('200', { 'Content-Type': 'text/html' }); res.end('content'); }); }).listen(8080);서버에 접속이 들어오면 body라는 변수를 초기화 해서 전해지는 데이터를 받을 준비를 하고, 'data'라는 이벤트에 들어오는 chunk를 body에 덧붙인다. 아마도 chunked를 대비해서 이런 이벤트를 별도로 둔 것 같은데 클라이언트가 chunked data를 전송하지 않으면 그냥 한방에 들어오겠지. 마지막 'end'이벤트는 데이터 전송까지 완료된 상황.
결국 'end'이벤트에서 할 일을 하고 res(responseObject)에 데이터를 전달하면 되겠다.
responseObject의 메소드로 setHeader라는게 있는데, 모 사이트 예제에서는 sendHeader라는 걸 쓰고 있어서 혼란이 있었다. 하여간 setHeader가 맞는 메소드이고 첫 번째 인자(HTTP Status Code)는 숫자가 아닌 문자열 타입으로 넘겨줘야 한다. 숫자로 넘기면 에러가 뿅~
댓글