koa-router源码疑惑 - CNode技术社区

koa-router源码疑惑
发布于 8 年前 作者 qichangjun 3896 次浏览 来自 问答

屏幕快照 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.jscompose遍历执行所有中间件时,为什么没有执行dispatch这个函数,而是在访问到对应的路由时,才会调用对应的dispatch?

4 回复

dispatch是对外暴漏的中间件啊

@i5ting 问题是我添加了三个dispatch中间件,为什么middleware里只有一个dispatch?,不应该是发现路由不匹配时调用next()继续去下一个dispatch中匹配嘛?

@qichangjun 你没看明白xx.routes的用法吧,再看用法

@i5ting 稍微明白点了,确实middleware中会有三个dispatch,只是在匹配到正确的之后的dispatch就不会再执行了

回到顶部

AltStyle によって変換されたページ (->オリジナル) /