koa-router源码疑惑
屏幕快照 2017年12月05日 上午11.02.47.png
这里定义了router的中间件,api.routes()实际返回的是dispatch函数
Router.prototype.routes = Router.prototype.middleware = function () {
var router = this;
var dispatch = function dispatch(ctx, next) {...}
dispatch.router = this;
return dispatch;
}
那在koa的application.js中compose遍历执行所有中间件时,为什么没有执行dispatch这个函数,而是在访问到对应的路由时,才会调用对应的dispatch?
4 回复
@i5ting 问题是我添加了三个dispatch中间件,为什么middleware里只有一个dispatch?,不应该是发现路由不匹配时调用next()继续去下一个dispatch中匹配嘛?