koa框架路由嵌套

koa框架支持路由嵌套 可以实现类似php laravel框架路由分组功能
我们可以为某些模块构建一个路由对象,在这个路由对象上又继续构建其他子路由对象
如下两个路由
企业用户与普通用户看到的页面是不相同的
.com/user/company/show
.com/user/admin/show

通过路由嵌套实现
1.创建总路由对象

const koa = require('koa');
const Router=require('koa-router');

let server=new koa();
server.listen(8080);
let router = new Router();//创建一个总路由

2.创建用户请求路由

let userRouter = new Router();//创建一个用户路由对象

3.分别创建用户路由下的子路由 company和admin

let company = new Router();//创建一个企业用户路由对象
    company.get('/show',async ctx=>{
    	ctx.body = '企业';//企业用户方法
})
let admin = new Router();//创建个人用户路由对象
    admin.get('/show',async ctx=>{
    	ctx.body = "个人";//个人路由对象方法
})

4.将子路由添加到User路由

 userRouter.use('/company',company.routes());
 userRouter.use('/admin',admin.routes());

5.将用户路由添加到总路由并绑定到server

router.use('/user',userRouter.routes());
server.use(router.routes());//将总路由绑定到服务

6.运行结果
在这里插入图片描述

在这里插入图片描述
虽然正常运行但所有路由都放在主文件上看起来比较乱,因此我们可以充分利用nodejs的模块化开发将路由生成一个目录,在这个目录下又生成对应模块的路由目录在这个模块路由下实现具体的功能

为上面路由生成下面结构
在这里插入图片描述

//admin.js
const Router = require('koa-router');
let admin = new Router();//创建个人用户路由对象
    admin.get('/show',async ctx=>{
    	ctx.body = "个人";//个人路由对象方法
})

module.exports=admin.routes();
//company.js
const Router = require('koa-router');
let company = new Router();//创建一个企业用户路由对象
    company.get('/show',async ctx=>{
    	ctx.body = '企业';//企业用户方法
})
module.exports=company.routes();
//index.js
const Router = require('koa-router');

let router = new Router();
router.use('/company',require('./company'));
router.use('/admin',require('./admin'));

module.exports=router.routes();
//server.js
const koa = require('koa');
const Router=require('koa-router');

let server=new koa();
server.listen(8080);
let router = new Router();//创建一个总路由
router.use('/user',require('./routers/user'));
server.use(router.routes());

实现效果与前面一致

原创文章 134 获赞 9 访问量 8768

猜你喜欢

转载自blog.csdn.net/weixin_45143481/article/details/105254264