연습장

04. 실습 1 - 페이지와 연결 (get) 본문

Node.js

04. 실습 1 - 페이지와 연결 (get)

js0616 2023. 7. 29. 14:49

간단하게 html 파일을 하나 만들고 라이브 서버로 실행 하였다.

 

 

주소 값을 보면

 

127.0.0.1:5500/ex01.html

로컬 주소 : 포트번호 / 실행 파일 

이며 (5500은 vscode 라이브서버의 기본 포트 값)

 

node.js 를 서버로 사용하면 html 의 정보를  서버로 넘겨 줄 수 있다.

form 태그의 action 값은 우리가 정보를 보내줄 곳 또는 요청하는 곳 , 서버의 주소가 된다. 

 

 

서버를 키고 nodemon ex01.js

각각 1 2 3 값을 입력 후 제출을 누르게 되면 접속 확인 이라는 문구가 뜨게된다.

이전에는 우리가 직접 http://127.0.0.1:3000 이라고 주소창에 입력했었다면

 

이번엔 html 을 실행한 라이브서버인 

127.0.0.1:5500/ex01.html 에서 (일종의 클라이언트 에서) 제출 버튼을 눌러서

실행한 노드 서버인  http://127.0.0.1:3000  로 접속 (요청) 한 것을 알 수 있다.

 

이렇게만 보면 조금 감이 안오기 때문에 js 파일을 조금 더 건들여 보자.

 

 

 

 

사용자의 요청 에 따라서 서버가 응답을 해줘야 하는데  

우리는 어떤 response 도 하지 않은 상태이다. 

(아래 그림에서 Document 왼쪽에 원이 계속 도는 상태)

 

따라서 다음과 같이

 

response.end()  

 

응답 종료 를 하게 되면  빙글빙글 돌던 아이콘이 멈추고 바뀌게 된다.

 

 

또 주목할 점은 서버주소가 바뀌게 되는데 

우리가 설정한 서버로 이동하고 

?id=1&pw=2&nick=3 

? 뒤에 있는 값들이 우리가 설정한 

html 의 태그의 name 값과 사용자의 입력 값이 같이 전달되는것을 알 수 있다.

 

이를 get 방식이라고 부른다. (다른 방식으론 post 방식이 있다)

 

 


 

 

즉 주소에 들어있는 값을 이용한다면 우리가 사용자에게 받은 정보로 서버에서 다른 작업을 더 진행 할 수 있다.

 

url 모듈을 불러오고  

 

let query_data = m_url.parse(request.url, true).query

 

주소값을 해독 및 query_data 변수에 담는 다고 생각하면 된다. 

그리고 console.log 하게 되면 

 

 

 

객체 { }  형태로 key: value ==  name 값 : 입력값 

데이터를 터미널에서 확인 할 수 있다. 

 

그 아래 접속확인과 빈 객체 값은 Favicon 이라고 

홈페이지 상단에 보면 글쓰기 왼쪽에 아이콘 을 의미하며

 

기본적으로 이에 대한 정보를 요청하도록 되어있는데 설정한 값이 없어서 저렇게 보이는것으로 일단은 넘어가도록 하자.

 


 

이대로 끝내기 조금 아쉬워서 받은 정보를 한번 이용 해보도록 하자.

 

id pw nick 을 입력하고 제출하면  사용자가 입력한

 

id 님 환영합니다.

 

라는 문구가 홈페이지에 나오도록 해보겠다. 

 

 

무슨 뜻이냐면 클라이언트(html) 에게 받은 요청에 대해서 서버(nodejs)가 응답해준다는 것이다. 

 

 

 

18 줄의 코드 내용은  html 문서를 만들때 위에 있는 head 에 들어가는 기본적인 설정 같은 부분으로

일단은  고정값이라고 생각해도 좋다. 

 

19 줄 코드의 내용은 이제 html 의 간단한 구조이다.

html - body - h1 - 내용  - /h1 - /body - /html 

전체를 문자로 전달해야 되는데 

 

우리가 원하는 값 사용자가 입력한 id 만 바뀌게 하고싶으므로 이부분만 변수로 하기 위해서

` (백틱)  을 이용하여 진행 하였다. (잘 모르겠다면 구글에 'es6 백틱' 검색 ) 

 

 

작성한 파일을 저장하고

서버 켰는지 ( 터미널에서 nodemon ex01.js ) 확인 하고 

html 을 라이브서버로 실행해서

값을 적고 제출하면 

다음과 같이 내가 적은 id 값이 나오면서 환영합니다 까지

웹페이지에 표기가 된다. 

 

 


 

 

요약하자면 위와 같은 방법으로 사용자에게 받은 값을 서버에서 확인 하고 웹페이지에 표시 할 수 있었다.

 

하지만 get 방식은 주소창에 정보가 노출이 되어서 보안상 취약하며

 

이를 해결하기 위한 방법으로 post 방식이 있다. (get 방식보다 안전함)

'Node.js' 카테고리의 다른 글

06. Express js  (0) 2023.07.29
05. 실습 2 - 페이지와 연결 (post)  (0) 2023.07.29
03. nodemon  (0) 2023.07.29
02. 로컬 서버 연습  (0) 2023.07.29
01. Node.js 설치  (0) 2023.07.29