路由
koa 官方并没有像 express 提供路由原生支持能力,都是三方在做!
最出名莫属于 koa-router,但是目前基本上处于维护瘫痪状态,各种特性、PR、Issue 都基本上没人处理了。还好 koa 社区 fork 并继续维护 改名为 @koa/router。
不用路由
路由本质就是中间件,如果不用路由 我们照样可以手写中间件来处理和响应 用户的请求:
但是 这种方式不是很好,当我们项目变得很大的时候,我们需要编写很多 switch-case 这样的语句,代码变得更加耦合,这也是我们为什么推荐使用专业的路由插件的原因了!
路由前缀
嵌套的子路由自动地被继承其了父路由作为它的前缀
获取参数
get
访问 http://localhost:3001/user?id=1
post
@koa/router 针对 post 请求,参数并不好获取,
需要安装三方插件 @koa/bodyparser 或者 koa-body(推荐)(express 已经将其内置了,但是 koa 坚持精简)
restfull
访问 http://localhost:3001/user/1
分割模块
一般情况下,我们会将路由按照功能拆分成不同模块文件,用于我的代码更加的清晰,比如:
虽然我手动也能做出模块汇总合并,但是我还是推荐别人造好的轮子来做: koa-combine-routers
router/root.js
router/user.js
router/index.js
最后,我们在 入口文件使用即可
app.js