最近需要用到koa做点东西,看到经常被推荐的koa-router使用上有很多不习惯(比如要给每个路径设置路由,指定方法),于是尝试实现了这个自动化的路由中间件(仅仅是实现,提供一点思路,因为我平时不用nodejs,所以是绝对的新手,留意有坑,比如兼容性问题),已上传至 [git仓库] ( https://github.com/tim1020/ec-router)和npm
```npm install ec-router ```
以下是它的功能:
1. 自动规则路由
无需设置路由,自动根椐请求方法,执行controller目录下的控制器和控制器方法,支持RESTful方式,path方式及QueryString方式
a. RESTful方式
GET /user 路由到controller下的user.js,并执行其中的get方法
POST /user 路由到controller下的user.js,并执行其中的post方法
b.Path方式(如果要根椐请求方法处理的,开发者自行处理)
GET /user/list 路由到controller下的user.js,并执行其中的list方法
POST /user/add 路由到controller下的user.js,并执行其中的add方法
c. QuseryString(如果要根椐请求方法处理的,开发者自行处理)
GET /index?c=user&a=list 路由到controller下的user.js,并执行其中的list方法
GET /index?c=user&a=add 路由到controller下的user.js,并执行其中的add方法
2. 自动RESTful服务
支持自动生成RESTful服务,后端存储可选择mysql和mongodb, 你可以不编写业务代码自动实现一个通用的RESTful服务,提供基本的增删改查功能。
当使用type=1时,且配置了dbConf,则开启自动RESTful服务。
当自动路由规则没有匹配时,如果开启了自动RESTful服务,则进入自动服务逻辑,该中间件会根椐请求方法和参数,自动构建对应的MYSQL或MongoDB的查询,并将结果返回。
(如果RESTful服务的需要的逻辑比较复杂,自动的处理逻辑不能满足,则可通过定义对应的控制器和控制器方法来处理,自定义的控制器优先于自动逻辑)
你的路由规则匹配有问题,而且你理解的restful也有问题。
https://github.com/koajs/route/blob/master/index.js https://github.com/WhiteHouse/api-standards
@kurten 请指教
@yansong 粗看了一下,大家的出发点一致(约定优于配置,不需要写那些烦人的路由规则),当中有不少值得借鉴的地方,有空再详细研究下。