정말 짧고 간단한 코드지요? 이 미들웨어는 로그인 상태가 아니라면 401 HTTP Status를 반환하고, 그렇지 않으면 그다음 미들웨어들을 실행합니다.
이제 이 미들웨어를 posts 라우터에서 사용해 보겠습니다.
src/api/posts/index.js
import Router from 'koa-router'; import * as postsCtrl from './posts.ctrl'; import checkLoggedIn from '../../lib/checkLoggedIn'; const posts = new Router(); posts.get('/', postsCtrl.list); posts.post('/', checkLoggedIn, postsCtrl.write); const post = new Router(); // /api/posts/:id post.get('/', postsCtrl.read); post.delete('/', checkLoggedIn, postsCtrl.remove); post.patch('/', checkLoggedIn, postsCtrl.update); posts.use('/:id', postsCtrl.checkObjectId, post.routes()); export default posts;
어떤가요? 미들웨어를 만드니까 로직을 재사용하기가 참 편하지요?