- CreateServer 메소드
http.createServer() 메소드는 server 객체를 생성한다.
createServer 메소드 안에는 requestListener을 등록해준다.
server 객체는 EventEmitter를 기반으로 만들어졌다. server.on("request", 콜백 함수);
EventEmitter Class는 어떠한 이벤트가 발생했을 때, 그에 대한 콜백 함수를 등록해준다.
ex) 트위터의 셀러브리티(유명인)와 팔로워들을 예로 들수 있다.
유명인이 포스터를 작성하면 모든 팔로워들이 그것을 searchcribe(검색 스크립트)하고 있기 때문에
바로 알림을 받을 수 있는 것이다.
=> Server 역시 요청이 와 어떤 이벤트가 이뤄지면 그거에 대한 콜백 함수(requestListenr)가 실행되는 것.
- server 객체
server 객체는 컴퓨터의 포트를 수신하고 요청이 만들어질 때마다 requestListener라는 함수를 실행할 수 있다.
server.listen() => server 실행, server.close() => 서버 종료
server 객체는 EventListener를 기반으로 만들어졌다.
server.on("request", 콜백 함수), server.on("connection", 콜백 함수)... (close, upgrade...)
=> 위처럼 하는 대신 이렇게 코드를 짜도 된다.
- RequestListener 함수
requestListener는 server가 요청을 받을 때마다 호출되는 함수.
requestListener 함수는 사용자의 요청과 사용자에 대한 응답을 처리한다.
req(request), res(response) 객체는 노드가 전달해준다.
1. req
request 객체는 IncomingMessage의 인스턴스이다.
IncomingMessage 객체는 Server에 대한 요청을 나타낸다.
아래는 request 객체를 통하여 사용할 수 있는 속성과 메소드 이다.
2. res
ServerResponse 객체는 requestListener 함수의 두 번째 매개변수로 전달된다.
Client에 웹 페이지를 제공하기 위하여 response 객체를 사용한다.
아래는 response 객체를 통하여 사용할 수 있는 속성과 메서드 이다.
writeHead() - status와 response headers를 Client에 보낸다.
한 번만 호출되어야 하며 end()가 호출되기 전에 호출되어야 한다.
end() - 데이터가 로드되었음을 Server에 알리고 응답을 끝마친다.
여기서 명령어 하나를 알아보자면,
node server.js => Node.js 환경에서 server.js라는 파일을 실행하는 명령어.
- Node.js : Javascript 런타임으로, 서버 사이드 애플리케이션을 개발할 수 있게 해줌.
- server.js : 보통 Node.js로 작성된 Server의 코드가 담긴 파일.
이 파일에는 HTTP Server를 설정하거나, API를 정의하는 등의 로직이 포함되어 있을 수 있다.
즉, 이 명령어를 실행하면 server.js 파일 내의 코드가 실행되어 Server가 시작되고, Client의 요청을 처리할 수 있다.
- Server에서 Client로 text를 보내는 것이 아닌 javascript object를 보내려면?
Content Type을 변경해주면 된다. => "Content-Type" : "application/json"
'백엔드 > Node.js' 카테고리의 다른 글
Post 요청으로 데이터 추가하기 (0) | 2024.08.30 |
---|---|
HTTP Routing (0) | 2024.08.30 |
HTTP Status Codes (0) | 2024.08.29 |
HTTP Request, Response 구조 (0) | 2024.08.29 |
Stateless Protocol (0) | 2024.08.29 |
github : https://github.com/dnjfht
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!