Web/TIL

form 전송 수업

gorae_lulu 2022. 11. 30. 16:44

 

form 전송 수업


 

 

body-parser

데이터를 쉽게 처리할 수 있도록 도와주는 라이브러리

Post로 정보를 전송할 때 요청의 body(req.body)로 받을 수 있게 도와줌

express 4.x 부터 body-parser가 내장되어 있어 설치 필요 없음

 

 

 

 

form

 

<form>

입력된 데이터를 한 번에 서버로 전송하기 위해 사용

• 즉, 클라이언트가 서버에게 정보를 전달할 때 사용

• 속성 : action, name, target, method

• 폼 요소 : <input>, <select> , <textarea>, <button> 등등

 

 

 

<form> 속성

 

action

- 폼을 전송할 서버 주소 지정

 

name

-폼을 식별하기 위한 이름

method

-폼을 서버에 전송할 http 메서드 지정

 

target

- action 속성값에 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에서 열 수 있도록 함

- _blank, _self 

 

 

 

<form> method

 

 

 

 

<input> 

 

• 사용자가 다양하게 폼 태그를 입력할 수 있게 하는 것

• 입력창

• 가장 기본적인 form 요소

 

 

type : 인풋 타입

name : 이름 지정. backend에서 name으로 key가 설정된다.

readonly : 읽기 전용 (수정 불가)

autofocus : 자동 focus

placeholder : 짧은 도움말

 

 

 

 

<input> type 종류

 

 

 

 

 

 

<select>

• 선택창

• 서버가 지정한 특정 값만을 선택할 수 있는 요소

• input이 주관식이라면 select는 객관식

 

 

<label>

• 폼 양식에 이름을 붙일 수 있다.

 

• for 속성

- for 속성에 연결할 요소의 id를 적어 label을 클릭해도 해당 요소로 가게 만들 수 있다.

 

 

 

 

<fieldset>    <legend>

 

• <fieldset> : 폼 태그 안에 있는 요소들을 그룹화할 때 사용한다.

• <legend> : 안에 들어가는 태그로, 목적에 맞게 이름을 지정할 수 있다.

 

 

 

 

 

 

 

form validation 유효성 검사

 

 

• form 요소들에 정보가 올바르게 입력되었는지 검사하는 것 

ex) 비밀번호: 8자리 이상, 특수문자 및 대문자 1개 이상 포함

ex) 이메일: @ 기호 반드시 포함

 

 

input 태그에 지정 가능한 유효성 검사 기능

required : 필수 값

minlength / maxlength : 최소/최대 문자수

min / max : 최소/최대 값

type : 입력받는 정보 타입

pattern : 정규식으로 검사

 

 

 

 

 

pattern 속성에서 정규식 사용

정규식(정규표현식): regex(regular expression)

정규 표현식 - JavaScript | MDN (mozilla.org) 

 

 

 

 

 

 

 

javascript 응용한 유효성 검사

 

 

 

 

 

 

nodemon 패키지

 

서버 측 코드(app.js 등)가 변경될 때마다 ctrl + c 단축키로

node 명령어를 종료하고 node app.js 명령을 다시 입력하기 귀찮음

• 파일들을 모니터링하다가 소스코드 변경 시 자동으로 node 재실행하는 패키지

npm install -g nodemon   #전역 설치
nodemon -v     # 설치확인(버전확인)
nodemon app.js    # 진입점 파일 실행

 

 

 

 

참고) 지역 설치 vs. 전역 설치

 

 

 지역 설치 : 해당 프로젝트의 node_modules/ 폴더 안에 패키지 설치

- 해당 프로젝트 내에서만 사용 가능

전역 설치 : -g 옵션(global)으로 전역 node_modules/ 폴더 안에 패키지 설치

-모든 프로젝트가 공통으로 사용 가능

 

npm install [패키지명]     # 지역 설치
npm install -g [패키지명]     # 전역 설치

 

 

 


 

 

동적 form 전송

 

 

 

form 전송

 

• <input type = "submit">이나 <button type = "submit">을 이용해 전송

• 전송 시 페이지 이동

 

 

 

 

비동기 HTTP 통신

 

• 동기 방식

-한 번에 하나만 처리 -> 페이지를 아예 이동해 서버가 데이터 처리

• 비동기 방식

-서버에 데이터를 보내고 응답을 기다리는 동안 다른 처리 가능!

 

• dynamic

- 웹 문서가 정적으로 멈춰있는 것이 아니라 일부 내용이 실시간으로 변경되는 것

• 비동기 HTTP 통신 : 폼의 데이터를 서버와 dynamic 하게 송수신하는 것

 

 


비동기 HTTP 통신 방법

 

1. Ajax

2. Axios

3. Fetch

 

 

 

 

1. Ajax

 

• 장점

-JQuery를 통해 쉽게 구현 가능

-Error, Success, Complete의 상태를 통해 실행 흐름을 조절할 수 있다.

• 단점

-Jquery를 사용해야만!! 간편하고 호환성이 보장된다. ( xml 사용은 복잡 ) 

-Promise 기반이 아니다

 

 

 

2. Axios

 

Node.js와 브라우저를 위한 Promise API를 활용

• 비동기 HTTP 통신이 가능, return이 Promise 객체로 온다.

 

• 장점

- Timeout 기능이 존재한다.

- Promise 기반으로 만들어졌다.

- 브라우저 호환성이 뛰어나다.

 

• 단점

-모듈 설치 or 호출을 해줘야 사용이 가능하다

 

 

3. Fetch

 

• ES6부터 들어온 JavaScript 내장 라이브러리

• Promise 기반

 

• 장점 

-JavaScript 내장 라이브러리이므로 별도의 import 필요 X 

-Promise 기반

 

• 단점 

-최신 문법

-Timeout 기능이 없다.

-상대적으로 Axios에 비해 기능 부족

 

 

 

 

● Fetch - post

 

 

 Fetch - get

 

 Fetch - response

 

response 에는 Promise를 기반으로 하는 다양한 메서드(함수) 존재.

이 메서드들을 사용하면 다양한 형태의 응답 처리 가능

 

-응답을 읽고 텍스트를 반환

 

-응답을 JSON 형태로 파싱(실제로 확인해 보면 javascript 객체 형태로 반환)

 

 

 

 

(추가) JSON이란?

 

-데이터를 저장, 전송할 때 사용되는 경량의 DATA 교환 형식

-javascript에서 객체를 만들 때 사용하는 표현식

-JSON은 데이터 포맷일 뿐, 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 

 

 

 

JSON의 특징

 

-서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다.

-자바스크립트 객체표기법과 아주 유사하다.

-자료형이 아닌 텍스트의 형식일 뿐이다.

-JSON형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있다.

-다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다.

-특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링할 수 있는 라이브러리를 제공한다

 

'Web > TIL' 카테고리의 다른 글

데이터베이스 수업  (0) 2022.12.21
파일 업로드 수업  (0) 2022.12.06
Epxress, ejs 수업  (0) 2022.11.28
Node.js 수업  (0) 2022.11.20
개발문화, Git 수업  (0) 2022.11.17