express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?

如题,express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?这不用我们管吗?如果我们 有2个自定义中间件有顺序要求,那应该怎么定义呢?

假设你请求的路径是 `/user,并且此时有如下两个路由同时匹配中你的请求。那么

  1. 理论上,这两个路由匹配中的中间件都会执行

  2. 后面中间件是否执行,取决于前一个中间件,是否有调用next

app.get/user, functionreq, res, next{ console.log1; next;
}; app.get/user, functionreq, res, next{ console.log2; res.senduser;
};

express内部是通过一个叫做stack的数组来维护这个次序的。

xx.stack.pushfn1;
xx.stack.pushfn2

把先调用的中间件写在前面就好了,就是这么直接。

发表评论

电子邮件地址不会被公开。 必填项已用*标注