Koa入門第二課:使用 Koa-router 實現路由,前綴的整合、以及中間件的寫法


const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();

/*
    自己寫中間件
*/

const auth = async (ctx, next) => {
    if (ctx.url !== '/users') {
        ctx.throw(401);
    }
    await next();
}


router.get('/', auth, (ctx) => {
    ctx.body = '這是主頁';
});


// router.get('/users', (ctx) => {
//     ctx.body = '這是用戶列表頁';
// });

// router.get('/users/:id', (ctx) => {
//     ctx.body = `獲取用戶${ctx.params.id}詳情`;
// });

// router.post('/users', (ctx) => {
//     ctx.body = '增加用戶';
// });


/*
    可配置前綴,免得全是/users/...
*/
const usersRouter = new Router({ prefix: '/users' });
usersRouter.get('/', auth, (ctx) => {
    ctx.body = '這是用戶列表頁';
});

usersRouter.get('/:id', auth, (ctx) => {
    ctx.body = `獲取用戶${ctx.params.id}詳情`;
});

usersRouter.post('/', auth, (ctx) => {
    ctx.body = '增加用戶';
});

app.use(router.routes());
app.use(usersRouter.routes());
app.listen(3000);
console.log('服務開啟成功,請在打開瀏覽器運行:', 'http://localhost:3000');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM