body-parser
body
를 해석해서 req.body
로 받을 수 있게 도와준다.form
① action
② name
<script> document.forms['form태그의 name속성값'] </script>
-> 자바스크립트에서 name 속성을 이용해서 폼을 선택할 수 있다.
③ method
③-1 ) get
get
요청 시 backend로 보내야하는 데이터가 있다면 URL 쿼리 문자열에 데이터를 실어서 전송한다.post
에 비해 상대적으로 보안에 취약하다.③-2 ) post
🤷🏻♀️ 멱등성(idempotent) 이란?
- 연산을 여러 번 하더라도 결과가 달라지지 않는 성질을 의미한다.
->get
요청의 경우 여러 번 요청해도 응답이 같지만,post
요청의 경우 리소스를 새로 생성하거나 업데이트하므로 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있다.
④ target
_blank
: 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에서 연다._self
: 지정한 스크립트 파일을 현재 창에서 연다.① <input>
type
: text, radio, checkbox 등name
: 이름 지정 -> backend에서 key 값으로 설정된다.readonly
: 읽기 전용 -> 수정 불가autofocus
: 자동 focusplaceholder
: 짧은 도움말② <select>
③ <label>
form
양식에 이름을 붙일 수 있다.for
속성에 연결할 요소의 id
를 적어 label
을 클릭해도 해당 요소로 가게 만들 수 있다.④ <fieldset>
, <legend>
<fieldset>
: 폼 태그 안에 있는 요소들을 그룹화할 때 사용한다.<legend>
: <fieldset>
안에 들어가는 태그로 목적에 맞게 이름을 지정할 수 있다.① form 정보 받기
res.send()
: 기본적으로 response를 보내는 역할을 한다. 기본적으로 서버에서 response를 처리할 때 Content-type
를 지정해주어야 하지만, res.send()
는 어떤 데이터를 보내는지 파악을 해서 Content-type
를 알맞게 지정해준다.② 결과 페이지에 데이터 추가
res.render()
: res.render()
메소드는 서버에서 클라이언트에세 HTML을 생성하고 전달하는데 사용된다. 주로 템플릿 엔진(예: ejs)을 사용하여 HTML 코드를 동적으로 생성하며, 템플릿 파일을 렌더링하여 클라이언트에세 전송한다. -> 클라이언트 측에서 페이지의 콘텐츠를 변경하는 것이 아니라 서버 측에서 체이지를 구성한 후 전송한다.res.render('파일경로', { data 이름표: 전송할 data })
form 요소들에 정보가 올바르게 입력되었는지 검사하는 것이다.
예: 비밀번호 - 8자리 이상, 특수문자 및 대문자 1개 이상 포함 / 이메일 - @ 기호 반드시 포함
input
태그에 지정 가능한 유효성 검사 기능 :
required
: 필수 값minlength
/ maxlength
: 최소 / 최대 문자 수min
/ max
: 최소 / 최대 값type
: 입력받는 정보 타입pattern
: 정규식으로 검사pattern 속성에서 정규 표현식 사용
/
: 정규식을 사용한다는 의미$
: 끝[]
: 범위 (예:[가~힣]
-> 한글의 모든 음절 범위를 표현){}
: 개수 (예:{2, 4}
-> 2개부터 4개까지)()
: 그룹 검색 및 분류.
: 임의의 글자 하나+
: 1개 이상의 글자*
: 0개 이상의 모든 문자?
: 0~1번 반복되는 문자열
+) nodemon 패키지
서버측 코드(예: app.js)가 변경될 때마다 ctrl + c 단축키로 node 명령어를 종료하고 다시 실행시키기 번거롭다. -> 파일들을 모니터링 하다가 소스코드 변경시 자동을 node를 재실행하는 패키지이다.npm install -g nodemon // -g: 전역설치 nodemon -v // 설치 확인 npx nodemon app.js // 파일 실행
참고: 포스코x코딩온 강의 자료(10_10_form.pdf)
① HTTP header
▶︎ request
Request Method : 요청 메소드(GET, POST, PUT, DELETE 등)
Request URL : 요청 URL
Host : 요청한 서버의 도메인명 또는 IP 주소
User-Agent : 클라이언트의 브라우저 정보
Accept : 클라이언트가 받아들일 수 있는 MIME 타입
🤷🏻♀️ MIME TYPE 이란?
- Multipurpose Internet Mail Extensions
- 미디어 유형(다용도 인터넷 메일 확장 또는 MIME 유형이라고도 함)은 문서, 파일 또는 바이트 모음의 특성과 형식을 나타낸다.
참고
Content-Type : 요청 바디의 MIME 타입
Authorization : 인증 토큰 정보 등
▶︎ response
② HTTP body
▶︎ request
-POST, PUT, DELETE 등 요청 바디에 데이터가 존재할 경우 해당 데이터를 담고 있다.
▶︎ response
-서버가 클라이언트에게 응답할 데이터가 존재할 경우 해당 데이터를 담고 있다.