根據功能不一樣,將路由拆分到不一樣的模塊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