const Koa = require('koa');
const app = new Koa();
app.use(ctx => {
ctx.body = 'hello word';
});
app.listen(4000, () => {
console.log('Listening to port 4000');
});
$ node src
미들웨어
- Koa App은 미들웨어의 배열로 구성
app.use
함수를 이용해 미들웨어 함수를 app에 등록- 파라미터
ctx
는 조금 전에 사용한, 두번째 파라미터는next
ctx
는 Context의 줄임말- 웹요청과 응담에 대한 정보
next
는 현재 처리중인 미들웨어의 다음 미들웨어를 호출하는 함수next
함수를 호출하지 않으면 다음 미들웨어 처리를 하지 않음
const Koa = require('koa');
const app = new Koa();
app.use((ctx, next) => {
console.log(ctx);
console.log(1);
next();
});
app.use((ctx, next) => {
console.log(2);
next();
});
app.use(ctx => {
ctx.body = 'hello world';
});
app.listen(4000, () => {
console.log('Listening to port 4000');
});
next
를 중간에 뺀다면 그 이후의 미들웨어는 모두 무시- 특정 조건으로 미들웨어를 처리하도록 가능
app.use((ctx, next) => {
console.log(ctx);
console.log(1);
if (ctx.query.authorized !== '1') {
ctx.status = 401; // Unauthorrized
return;
}
next();
});
http://localhost:4000/?authorized=1
로 조회해야지만hello world
의 결과가 나옴- 웹 요청의 쿠키 혹은 헤더를 통해 처리가 가능
next
함수는Promise
를 반환Express
와 차별되는 부분next
함수가 반환하는Promise
는 다음에 처리해야하는 미들웨어가 끝나야 완료
'Web 개발 > Node' 카테고리의 다른 글
[Node] koa를 이용해 RESTApi 만들기 (+Router 모듈화) 예제 코드 (0) | 2020.02.16 |
---|---|
[Node] koa-router 사용방법 parameter, query (예제코드) (0) | 2020.02.16 |
[Node] nodemon을 이용해 서버 자동으로 재시작 (0) | 2020.02.16 |
[Node] async/await 사용예제 코드 (0) | 2020.02.16 |
[Node] 프로젝트 생성 (esLint, prettierrc) (0) | 2020.02.16 |