const http = require('http');
const server = http.createServer((request, response) => {
// 여기서 작업이 진행됩니다!
});
서버에서 정보를 요청받기위해 require함수를 이용하여 HTTP의 각종 기능을 http에 할당하여 사용하고
http 오브젝트의 "createServer"메서드를 호출하여 http.Server 개체를 만든다. 이 서버로 오는 HTTP 요청마다 createServer에 전달된 함수가 한 번씩 호출됩니다.
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// 여기서 `body`에 전체 요청 바디가 문자열로 담겨있습니다.
});
핸들러에 전달된 request 객체는 'data'와 'end' 이벤트에 이벤트 리스너를 등록해서 데이터를 받을 수 있습니다.
참고
response.writeHead(200, defaultCorsHeader);
response.end(body);
writeHead 메소드 - 명시적인 헤더 데이터 전송
첫번째 인자는 상태 코드를 지정하고 두번째인수에 헤더 정보를 연관 배열로 정리한 것이다.
end 메소드 - 컨텐츠 출력 완료(응답 종료) 위네용으로 는 body를 response를 하라는 뜻으로 설명이된다.
const defaultCorsHeader = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Accept',
'Access-Control-Max-Age': 10
};
defaultCorsHeader를 해석하면
1.모든 도메인(*)을허용한다
2.메소드는 'GET, POST, PUT, DELETE, OPTIONS' 만 허용한다
3.헤더는 'Content-Type, Accept'만 쓸수있다
4.preflight request는 10초까지 허용한다(요청시간=>request.method === 'OPTIONS')
으로 설명을 마치며 'Content-Type, Accept'은 공부후에 블로그 작성을 하도록하겠습니다.