Node.js 16 (10/06)

‍박태우·2023년 10월 6일
0

1. HTTP 서버 만들기

(http 는 프로토콜이다. http 모듈을 이용하여 서버 만들 수 있다. )

(이부분은 write 스트림을 진행하고 end로서 더이상 write 하지 않도록 해준다.)

(서버를 만들고 listen을 하면 터미널 하나를 보유 하고 있기 때문에 위처럼 node 를 실행해도 다른 명령어 대기가 아닌 그냥 대기중 이라고 뜬다.)

(localhost:8080을 통해 서버로 접속 가능하다.

원래 서버마다 포트 번호가 존재한다. naver의 경우 443

https 가 적용되어 있는경우 포트가 443이여서 생략이 가능하다.

http 인 경우 뒤에 80이 생략 되어 있다.

포트의 좋은점 : 같은 도메인이라도 다른 포트를 이용하여 여러 프로그램을 동시에 연결해 놓을 수 있다.

db 따로 놓을 때 좋음)


  • 에러 및 lisening 처리

(비동기 환경에서 에러가 날 수 있기 대문에 server 변수에서 error 발생시 console.log 하였으며 위의 listen의 콜백을 밖으로 위와 같이 뺄 수 있다.)

=> 코드 수정 시 한번 껐다 켜야 한다.

2. fs로 HTML 읽어 제공하기

(브라우저 중에 위 경우 html인지 문자열인지 모르는 경우가 있다. (사파리)
이런경우 우리가 직접 html 이라는 것을 알려 줘야 한다.

따라서 아래와 같이 writeHead를 써줘야 한다. 한글 때문에 charseet=utf-8 도 써주면 좋다.)

res.writeHead(상태코드, 헤더 정보) - 응답 헤더에 대한 정보를 기록하는 메서드. 상태 코드는 HTTP 상태코드를 말하는데 200, 404, 500 등 이다. 'text/html' 은 응답의 콘텐츠 형식이 HTML 이라는 의미이고, 'utf-8' 은 한글 표시를 하라는 의미이다.


(위와 같이 만약 80포트를 쓰고있지 않다면 localhost 만으로도 접속 가능하다. 디폴트 값이 80 이기 때문)

  • 실제로 그러는 경우는 많이 없지만 아래와 같이 다른포트를 통해 다른 서버로 접속 가능하게 할 수도 있다.


  • 아래와 같이 html을 적는것은 비효율 적이다.

따라서 아래와 같이 따로 html파일을 우선 만들고

이후 js 파일에 아래와 같이 html 적용해주면 됨. (파일 읽기 = fs)

(결과는 다음과 같다.)

profile
잘 부탁드립니다.

0개의 댓글