2. 路由 - 2.2 koa-router中间件

优质
小牛编辑
125浏览
2023-12-01

如果依靠ctx.request.url去手动处理路由,将会写很多处理代码,这时候就需要对应的路由的中间件对路由进行控制,这里介绍一个比较好用的路由中间件koa-router

安装koa-router中间件

  1. # koa2 对应的版本是 7.x
  2. npm install --save koa-router@7

快速使用koa-router

demo源码

https://github.com/ChenShenhai/koa2-note/tree/master/demo/route-use-middleware

  1. const Koa = require('koa')
  2. const fs = require('fs')
  3. const app = new Koa()
  4. const Router = require('koa-router')
  5. let home = new Router()
  6. // 子路由1
  7. home.get('/', async ( ctx )=>{
  8. let html = `
  9. <ul>
  10. <li><a href="/page/helloworld">/page/helloworld</a></li>
  11. <li><a href="/page/404">/page/404</a></li>
  12. </ul>
  13. `
  14. ctx.body = html
  15. })
  16. // 子路由2
  17. let page = new Router()
  18. page.get('/404', async ( ctx )=>{
  19. ctx.body = '404 page!'
  20. }).get('/helloworld', async ( ctx )=>{
  21. ctx.body = 'helloworld page!'
  22. })
  23. // 装载所有子路由
  24. let router = new Router()
  25. router.use('/', home.routes(), home.allowedMethods())
  26. router.use('/page', page.routes(), page.allowedMethods())
  27. // 加载路由中间件
  28. app.use(router.routes()).use(router.allowedMethods())
  29. app.listen(3000, () => {
  30. console.log('[demo] route-use-middleware is starting at port 3000')
  31. })