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

实现效果与前面一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值