본문 바로가기
Node.js

[Node.js] 노드제이에스 - 폼에서 라우트 처리

by Seong-Jun 2024. 2. 13.
728x90
반응형
SMALL

Do it! Node.js프로그래밍 입문 9일차입니다.

 

폼은 웹 문서에서 사용자 입력을 받을 수 있는 형태를 가리키는 용어입니다. Login Form, Order Form, ...

 

name 속성은 필수!

 

프론트엔드에서 폼을 다룰 때는 class, id 속성만 있어도 됩니다. 하지만 서버에서 폼 필드의 값을 인식할 때는 name 속성을 사용하므로 없다면 반드시 추가해야 합니다.

 

폼의 요청 방식은 GET과 POST뿐 입니다.

 

폼을 통해 정보를 서버로 보낼 때 사용할 수 있는 요청 방식은 GET, POST 뿐입니다. 이때 GET 방식에서는 주소 URL에 정보를 함께  넣어서 보내고, POST방식에서는 요청 본문, 즉 req.body에 정보를 담아서 보냅니다.

 

PUT, DELETE 방식은 AJAX(Asynchronous Javascript and XML) 기법을 사용하거나 method-override라는 미들웨어를 사용합니다. AJAX란 XMLHttpRequest라고 하는 HTTP 요청을 만들어서 요청 방식과 넘겨줄 정보 등을 지정해주는 비동기 통신방법입니다. AJAX에서는 요청방식과 요청경로를 한꺼번에 넘겨주는 방식을 사용합니다.

 

method-override 미들웨어는 요청 방식을 덮어씌우는 방법으로 처리합니다. 폼에서 POST방식으로 전송하면 그것을 중간에 받아서 PUT 방식으로 바꿔서 서버로 전달하는 식입니다.

 

폼 자체에서는 GET, POST 방식만 처리하고 PUT, DELETE 방식을 처리하려면 미들웨어를 사용해 바꿔주는 단계를 거쳐야 합니다.

 

express.urlencoded()

 

인터넷을 통해 서버로 전송할 수 있는 문자는 아스키문자 뿐입니다. 만일 한글로 작성한 정보를 서버로 전송한다면 한글을 하스키 문자 형태로 바꿔서 전송하면 됩니다. 이것을 URL 인코딩이라고 합니다.

 

이미 인코딩되어 있는 자료를 가져와서 사용하려면 내용을 풀어주는 과정이 필요한데 이것을 파싱이라고 합니다. 익스프레스에서는 인코딩된 URL을 파싱해 주는 미들웨어 함수를 제공하는데 바로 express.urlencoded() 입니다. express.urlencoded() 파싱된 자료는 req.body에 저장됩니다.

 

옵션 파싱에 사용하는 모듈
extended: false 노드의 querystring 모듈
간단한 문자열이나 단순 배열을 파싱
extended: true 익스프레스의 qs 모듈
복잡한 객체나 배열까지 파싱

 

728x90
반응형
LIST

댓글