본문 바로가기
IT/React

Koa

by 봉즙 2019. 11. 27.

yarn init -y 이후

yarn add koa

Koa 웹 프레임 워크 설치한 뒤에

cat package.json

을 사용하면 의존성이 추가된것을 확인 할 수 있다.

 

 

Koa 어플리케이션은 미들웨어의 배열로 구성되어있다.  use() 함수를 통해 미들웨어 함수를 어플리케이션에 등록한다.

미들웨어 함수는 아래와 같은 구조로 이루어져있다.

(ctx, next) => {
}

 Koa의 미들웨어 함수는 두 개의 파라미터를 받는다. 첫번째 파라미터는 Context로 웹 요청과 응답에 관한 정보를 지니고 있다. next는 현재 처리중인 미들에어의 다음 미들웨어를 호출하는 함수이며 미들웨어를 등록하고 next함수를 호출하지 않으면 그 다음 미들웨어를 처리하지 않는다.
미들웨어는 use함수를 사용하여 등록되는 순서대로 처리된다.

 

next 함수를 호출하면 Promise를 반환한다. 이는 Koa가 Express와 차별되는 부분이다. next함수가 반환하는 Promise는 다음에 처리해야할 미들웨어가 끝나야 완료된다.

Koa는 async/await를 정식으로 지원한다.

 

nodemon : 서버 코드변경시마다 자동으로 재시작

 

koa-router :  router.get의 첫번째 파라미터에는 라우트의 경로를 넣고 두번째 파라미터에는 해당 라우트에서 적용할 미들웨어 함수를 넣는다. get 키워드는 HTTP 메서드로서 대신 post, put, delete를 사용하는 것도한 가능하다.

 

라우터의 파라미터를 설정 할 때 는 :(콜론)을 사용하여 라우트 경로를 설정한다. 파라미터가 있을 수도 없을 수도 있다면 ?를 파라미터 이름 뒤에 붙여준다. 설정한 파라미터는 함수의 ctx.params 객체에서 조회할 수 있다.

URL 쿼리의 경우 요청에 해당하는 값을 ctx.query에서 조회할 수 있으며 쿼리 문자열을 자동으로 객체 형태로 파싱해 주므로 별도의 파싱 함수를 돌릴 필요가 없다. 문자열 형태의 쿼리 문자열을 조회할 때는 ctx.querystring을 사용한다.

 

koa-bodyparser : 미들웨어는 POST/PUT/PATCH 같은 메서드의 RequestBody에 JSON형식으로 데이터를 넣어주면, 이를 파싱하여 서버에서 사용할 수 있게 한다. 이를 적용할때는 router를 적용하는 코드의 윗부분에서 사용해야한다.

 

컨트롤러 : 라우트 처리 함수들만 모아 놓은 파일

const 모듈이름 = require('파일이름');

모듈이름.이름();

컨트롤러에 있는 코드를 불러올 수 있다.

 

list, read, remove를 제외한 API는 요청할때 RequestBody가 필요하다.

'IT > React' 카테고리의 다른 글

JWT  (0) 2019.12.02
서버 사이드 렌더링  (0) 2019.11.25
코드 스플리팅  (0) 2019.11.22
리덕스  (0) 2019.11.19
SPA  (0) 2019.11.18

댓글