起因
不喜欢命令式地一行行声明路由和处理函数,也觉得koa
栈的各类路由中间件不好用,所以就想着自己做个玩
设计
对象路径=路由路径,无next逻辑
这个中间件的定位相当于最终路由,不支持内部的多层next的结构(但有提供框架本身的next参数),也不考虑RESTful的实现,所以代码还是挺简单的(要实现RESTful可以在处理函数内自己加判断,或者多做一层代理)
msg=路由参数+query+body
所有参数都从msg一个对象里取,类似ASP.NET
的做法,在大多数情况下能方便开发,当然要想分别从不同地方取也是可以的
接受异步返回(promise)
得益于Node8.0+的async/await
特性支持,我们终于可以写优雅的异步代码了(koa
自身支持,不过express
还是要加点处理)
统一的输出控制/错误捕获层
大多数项目都会想要一个统一的输出/错误处理层,所以提供了这个逻辑
支持路由参数
参考了express
的实现代码引入path-to-regexp
模块,可以写一些很cool的路由了
koa与express都支持
代码暂时还是分开维护的,毕竟两个框架实现上还是有很大不同
总结
反正我在生产环境用了挺久的,具体用法可以参考下面的链接
链接
Github-nRouter
暂时没有发布npm的打算(写英文好累的)