路由嵌套

假设做一个这样的路由:
/ 前台
/user
/news

/admin 后台
/admin/banners
/admin/list
/admin/login

const Koa = require("koa");
const Router = require("koa-router");
let server = new Koa();
let router = new Router();
server.listen(8000);

// 负责前台路由
let router_www = new Router();
router_www.get('/user', async ctx=>{
    ctx.body = 'user_前台'
})
router_www.get('/news', async ctx=>{
    ctx.body = 'news_前台'
})
router.use('', router_www.routes()); // 因为"router_www"不是处理函数,所以加入router的中间件
// 路由与路径之间的连接关系是”/“,所有不能带"/"
// '/' + '/user' = '//user'

// 负责后台路由
let router_admin = new Router();
router_admin.get('/banners', async ctx=>{
    ctx.body = "banner_后台"
})
router_admin.get('/list', async ctx=>{
    ctx.body = "list_后台"
    console.log(111)
})
router.use('/admin', router_admin.routes());// 因为"router_admin"不是处理函数,所以加入router的中间件
// 这里加”/“是因为父级是/admin
// '/admin' + '/banners' = '/admin/banners'

server.use(router.routes());

写成模块化:
前台模块www:

// 负责前台路由
const Router = require("koa-router");
let router = new Router();
router.get('/user', async ctx=>{
    ctx.body = 'user_前台'
})
router.get('/news', async ctx=>{
    ctx.body = 'news_前台'
})

module.exports=router.routes();

后台模块admin:

// 负责后台路由
const Router = require("koa-router");
let router = new Router();
router.get('/banners', async ctx=>{
    ctx.body = "banner_后台"
})
router.get('/list', async ctx=>{
    ctx.body = "list_后台"
})

module.exports = router.routes();

汇聚模块index:

const Router = require("koa-router");
let router = new Router();

// const wwwRouter = require("./router/www");  // 前台路由
// const adminRouter = require("./router/admin"); // 后台路由

// router.use('', wwwRouter);
// router.use('/admin', adminRouter);

// 路由整合
router.use('', require("./www"));
router.use('/admin', require("./admin"));
module.exports = router.routes();

服务器:

const Koa = require("koa");
let server = new Koa();
server.listen(8000);

server.use(require('./router'));
// 自动引入router下的index.js
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值