const server = http.createServer(async (req, res) => {
if(req.method === 'OPTIONS'){
//이런 식으로 기입해주면 된다.
res.writeHead(200, defaultCorsHeader)
res.end()
})
//이런 식으로 정의한 것을,텍스트
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
};
이 링크는 Node.js에서 HTTP 서버를 빌드하는 기본적인 방법을 다루고 있다.
https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/
이 사이트에 각 객체들이 어떤 메소드를 갖고있고 어떤 class에 속하는 지 등이 자세하게 나와있다.
내가 이번에 궁금했었고, 조금이나마 해결했던 것은,
request.on이다.
request.on() 같은 행위가 가능한 이유는
request가ReadableStream의 인스턴스며,EventEmitter의 인스턴스기도 하기 때문이라고 한다.이
EventEmitter는on이라는 method를 갖고 있다. 참고
on은addEventListner처럼 특정 event가 생기면callback을 실행시킨다.
또한 다시EventEmitter객체를 return하기 때문에 chaining이 가능하다.