0909 TIL express

냐하호후·2021년 9월 9일
0

TIL

목록 보기
41/101

보통 Node.js 환경에서 서버를 구축할 때, require('http') 를 이용해서 서버를 만든다.
하지만 Node.js 에는 http 보다 더 편리한 프레임워크 express가 있다.

미들웨어

미들웨어는 response 를 보내기까지 거치는 모든 과정 하나하나를 의미한다. 즉 공장으로 따지자면 response 라는 결과물을 만들어 내기까지 거치는 공정 하나하나를 미들웨어라고 보면 된다.

app.use를 사용한 미드웨어 : 모든 메소드와 path에 적용이되는 미드웨어
use에는 next가 내장되어있다.

next를 조건식처럼 사용할 수 있다. req, res 객체를 받아서 변형할 수 있고, next 호출을 통해서 다음 실행되어야 할 미들웨어를 실행할지, 실행하지 않을지를 그 미들웨어의 이전 미들웨어가 결정할 수 있다.

params,query,body : request의 프로퍼티

req.params

예를 들어 /user/:name 경로가 있으면 "name"속성을 req.params.name으로 사용할 수 있다.

https://params/user/12341234 일 경우 12341234를 받는다.

req.query

이 속성은 경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다.

예를 들어 https://query/search?searchWord=구글검색 이면

searchWord 매개변수(parameter)의 구글검색 이라는 인자(argument)를 가져온다.

req.body

JSON 등의 데이터를 담을때 사용한다. (주로 POST로 유저의 정보 또는 파일 업로드를 보냈을 때 )

요청 본문에 제출 된 키-값 데이터 쌍을 포함한다. 기본적으로 이는 정의되어 있지 않으며 express.json(), express.urlencoded()와 같은 미들웨어를 사용해야한다.

CORS가 필요한 이유

서버가 허용한 클라이언트의 요청에만 응답하기위해 CORS가 필요하다.

그외

바디파서 대신 app.use(express.json()) 이런 형식으로 사용한다.
json 미들웨어는 HTTP 요청을 받을 때, body에 있는 데이터를 정상적으로 사용할 수 있게 분석하는 역할 수행한다.(JSON 형태의 body를 입력받음)

GET에선 body가 없다
POST는 body가 있고
DELETE는 body가 없다.

app.set이 app의 키,value 둘다 적어주고
전에 set해준 키를 get함수에 넣으면 app.get을 통해 value를 얻을수있다.

참고

params, query, body 1
params, query, body 2
참고3

느낀점

공식문서는 괜히 영어로 읽으라는게 아니라는 점을 깨달았다. express는 영어로 봐야 최신버전을 확인할 수 있었다. CORS mdn은 처음볼땐 너무 길어서 한글로 봤었는데 익숙해 진 후에는 영어로 읽는게 이해하는데 더 도움이 되었다.

공식문서를 꼼꼼히 읽자!!

profile
DONE is better than PERFECT

0개의 댓글