[ Node.js ] Koa Framework

💡What is Koa ?

Express.js 개발팀이 새롭게 만든 프레임워크.

Express Framework에 비해서

  • async / await에 대한 기능이 좀 더 우수하고 (에러를 catch하는 등)
  • 매우 가벼운 프레임워크라는 점이 차이가 있다.

이러한 Koa Frameworkmiddleware Array로 구성되어 있다고 한다!


💡app.use

const Koa = require('koa');
const app = new Koa();
app.use(... => ...)

미들웨어 함수를 애플리케이션에 등록하며, 등록되는 순서대로 처리한다.
여기서 미들웨어 함수는, 다음과 같이 parameter을 받는다.

app.use((ctx, next) => ...)

  • ctx: Context의 줄임말. 웹 요청과 응답에 관한 정보를 지니고 있다.
  • next: 현재 처리 중인 미들웨어의 다음 미들웨어를 호출. 미들웨어를 등록 후, next 함수를 호출하지 않을 시, 다음 미들웨어를 처리하지 않는다.

또, 이러한 next를 호출하면 Promise를 반환한다. 따라서 다음에 처리해야 할 미들웨어가 끝나야 완료된다.

만약 다음과 같은 코드가 있다면,

    (... 코드 중략)
    next().then(() => {
        console.log('END');
    });

Promise를 먼저 처리한 후, 그다음에 'END'를 출력하는 방식으로 전개될 것이다.

만약 위 미들웨어 함수가 async로 이루어져 있다면,

(...코드 중략)
await next();
console.log('END');

해도 똑같이 작동할 것이다.


💡koa-router

따로 추가로 설치해야하는 module.
다른 주소로 요청이 들어올 경우 다른 작업을 처리할 수 있도록 해줌.

const Router = require('koa-router');
const router = new Router();
router.get('/', ctx => ctx.body = "HOME");

여기서 router.get은 (라우트의 경로, 해당 라우트에 적용할 미드웨어 함수)를 parameter로 받는다.
이외에도 post, put, delete, patch 등의 키워드가 있다.

메서드 설명
GET 데이터를 조회할 때 사용
POST 데이터를 등록할 때 사용.
인증 작업을 거칠 때 사용하기도 함.
DELETE 데이터를 삭제할 때 사용
PUT 데이터를 새 정보로 전체 교체할 때 사용
PATCH 특정 필드를 수정할 때 사용

출처

좋은 웹페이지 즐겨찾기