Node.js [ Koa ] 에대해서 || 사용법
Koa
Koa는 2016년 Express 팀이 만든 웹 프레임워크입니다.
Express 보다 기본으로 설계된 뼈대가 적지만 탄탄합니다.
Koa는 뼈대로 설치되는 모듈이 적고, customizing이 자유롭습니다.
Express보다 모듈화되어있어 원하는 대로 미들웨어 붙이기가 좋습니다.
Koa는 태생이 es6 기반이며 core 에서부터 async/await를 지원하여 try-catch 에러 처리가 필요없습니다.
- feat https://velog.io/@noyo0123/express-vs-koa-qyk24lsozz
Node.js 웹 애플리케이션 프레임워크? express vs koa
왜 koa를 쓸까요? 멘토분께서 koa로 개발을 하자고 해서 서버를 koa로 구현한 적이 있어요. 그런데 왜 koa를 쓸까에 대한 의문은 있었어요. koa... 열심히 구글링 해본 결과 es6 async await이 지원이 된대
velog.io
1.기본 셋업
Express 와 동일하다.
*Express
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
const server = app.listen(PORT, () => {
console.log(`Express is listening to <http://localhost>:${PORT});
});
*Koa
const koa = require('koa');
const app = koa();
const PORT = process.env.PORT || 3000;
const server = app.listen(PORT, () => {
console.log(`Koa is listening to <http://localhost>:${PORT});
});
2.Middleware
Middleward 사용 방식도 비슷하다.
다만 Express는 req, res context를 이용하는 대신 Koa는 ctx object를 사용한다.
또한 Koa는 middleware를 정의할 때 async/await 개념을 적용할 수 있습니다.
*Express
app.use((req, res, next) => {
console.log(`Time : ${Date.now()}`);
next();
});
*Koa
app.use(async (ctx, next) => {
console.log(`Time: ${Date.now()}`);
await next();
});
좋으면서 아쉬운점
라우팅, 템플릿 등 다양한 기능이 내장되어 있지 않아 다른 라이브러리를 적용해야 한다.
이 말은, Koa는 필요한 것만 설치함으로써 더욱 가볍게 백엔드를 구성할 수 있다는 것이다.
1. Koa-BodyParser
간단히 말하면 클라이언트 요청 body의
내용을 서버가 파싱하도록 돕는 모듈이다.
-- 참조
https://ychcom.tistory.com/entry/KOA-koa-bodyparser
KOA: koa-bodyparser
출처 : https://github.com/koajs/bodyparser koajs/bodyparser a body parser for koa. Contribute to koajs/bodyparser development by creating an account on GitHub. github.com 간단히 말하면 클라이언트 요..
ychcom.tistory.com
2. Koa-Router
라우팅은 경로를 선택하는 과정을 의미한다.
즉, URL을 입력하면 해당 URL에 최적화된 경로를 찾아서 서비스를 수행하는 것이다.
Koa는 별도의 라우팅 기능을 제공하지 않는다.
Koa Context의 path로 경로를 설정해야 한다.
사용상의 불편함을 해결하기 위해 제공되는 라우팅 미들웨어가 koa-router이다.
-- 참조
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=futureds&logNo=221766879603
koa-router
라우팅은 경로를 선택하는 과정을 의미한다. 즉, URL을 입력하면 해당 URL에 최적화된 경로를 찾아서...
blog.naver.com