티스토리 뷰

개발/Node.js

Digging Deep (1)

Getitbeauty 2017. 12. 1. 16:34

모듈과 미들웨어

모듈은 라이브러리와 같은 것으로 필요한 부분을 다운 받아서 사용할 수 있는것이고, 미들웨어는 다운 받은 모듈을 커스텀 한 것이라고 생각하면 됩니다.

미들웨어의 경우 콜백함수(req, res)의 형태를 띄고, 먼저 쓰여진 미들웨어가 먼저 실행됩니다.


참고 : http://jinbroing.tistory.com/126


HTTP request 와 response 이해하기

앞서 프로젝트에 사용된 모듈을 공부하는데 Request header가 어쩌구, request body가 어쩌구 하는데 도무지 이해가 가지 않아서 HTTP 전송에 대해서 좀 더 찾아보게 되었습니다.

Request-Line
*(( general-header | request-header | entity-header ) CRLF)
CRLF
[ message-body ]

Request 메시지는 위와 같은 구조를 가지고 서버로 넘어온다고 합니다. 맨 앞에 Request-Line이 오고, 이어서 여러 종류의 헤더가 나온 다음에 줄바꿈을 두번하고 메시지 바디가 오게된다. 앞서 살펴본, body-parser 모듈은 맨 마지막에 오는 message-body를 받는 역할을 하는 것!

Status-Line
*(( general-header | response-header | entity-header ) CRLF)
CRLF
[ message-body ]

(+) 그렇담 응답헤더는 어떤지도 봐야할 것 같아서 넣었습니다. 요청헤더 대신 응답헤더가 들어간 것만 다르네요.

참고 : https://blog.outsider.ne.kr/888


multipart/form-data란?

<form name="formName" method="post" enctype="multipart/form-data">
  <input type="file" />
  <input type="text" />
</form>

파일 업로드를 위한 form 태그의 enctype 속성이다.

HTTP Request는 Body에 클라이언트가 전송하려고 하는 데이터를 넣을 수 있다. HTTP Header(=Content-type)에 Body에 들어가는 데이터의 타입을 명시해 줌으로써 서버가 타입에 맞게 인코딩할 수 있도록 한다.

파일 업로드의 경우 위의 예시와 같이 form 태그 안의 속성이 서로 다를 수 있기 때문에, 이렇게 content-type이 서로 다른 경우에 multipart/form-data를 enctype 속성으로 정의한다.


(+) html form의 인코딩 방식 3가지

  • application/x-www-form-urlencoded (the default)
  • multipart/form-data
  • text/plain

(+) Accept header와 Content-type

Accept header는 클라이언트가 서버에게 보내는 request의 데이터 타입을 명시하는 것이고, Content-type은 서버가 클라이언트에게 보내는 response의 데이터 타입을 명시하는 것이다.

참고 : http://blog.naver.com/PostView.nhn?blogId=callzone&logNo=140055259392



next()

next() 함수는 Node.js 또는 Express API의 일부가 아니지만, 미들웨어 함수에 전달되는 세 번 째 인수로써, next()가 호출되면 앱 내의 그 다음 미들웨어 함수가 호출 된다. 보통 에러핸들링에 많이 사용한다.


multer 미들웨어

앞에서 말한 multipart/form-data를 처리하기 위해 멀터 모듈을 사용한다.

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

package.json 파일 분석  (0) 2017.11.30
nodejs로 프로젝트 시작하기  (0) 2017.11.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함