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