上一篇分析了express的路由机制,这次主要补充一些没有说到的东西. 之前说到,Router是中间件容器,Route是路由中间件,他们各自维护一个stack数组,里面存放layer,layer是封装中间件的一个数据结构.其实Router中不仅能存放一般的中间件,还能存放Router,这一点在源码中能看的出来,因为Router的构造函数中返回的是一个router函数,而中间件的生成也需要一个处理程序(函数),那么如果把Router()返回的处理程序作为参数传入中间件的生成方法中,就相当于Rout…