根据功能不一样,将路由拆分到不一样的模块app
目录结构:koa
app.jsasync
const Koa = require('koa'); const Router = require('koa-router'); const app = new Koa(); const router = new Router(); // 意思是:若是你访问的是根(localhost:3000/),要怎么处理,你去找 './routers/www/index.js' router.use('', require('./routers/www')); // 意思是:若是你访问的是 localhost:3000/admin 开头的,要怎么处理,你去找 './routers/admin/index.js' router.use('/admin', require('./routers/admin')); app.listen(3000, () => console.log('Running...')); app.use(router.routes());
routers/admin/index.js:导出 router.routes()ui
1 const Router = require('koa-router'); 2 3 const router = new Router(); 4 5 // 这里就是 localhost:3000/admin 6 router.get('/', async ctx => { 7 ctx.body = ctx.url; 8 }); 9 10 // 还能够继续分 11 // 意思是:若是你访问的是 localhost:3000/admin 开头的,你已经找到我了 12 // 可是,若是后面跟的是 /login,那你还得继续找 './login/login.js' 至于怎么处理,它说了算 13 router.use('/login', require('./login/login')); // 这里就是 localhost:3000/admin/login 14 15 module.exports = router.routes();
根据须要,能够无限拆分url