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');

猜你喜欢

转载自www.cnblogs.com/lihao97/p/12014018.html