#connect 源码学习 这里主要说下connect的路由拦截处理。connect可以添加多个中间件或路由对http的请求进行处理。 在处理http请求时,connect先获取相应的path,然后遍历相应的路由stack,每次从栈顶开始, 当一个路由和path匹配时,若path符合/path、/path/*、/path.*则使用该路由处理请求,否则都跳过当前路由 继续遍历下一个路由。若路由处理请求成功则终止当前路由遍历,若失败则跳过路由继续路由遍历。 路由的匹配规则:
- route.length={0,m}, path.length={0,n}
- 当m>n时route != path 跳过该路由,继续遍历
- 当m<=n route != path.substring(0, m) 跳过该路由,继续遍历
- 当m<=n route = path.substring(0, m)