node.js - express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?
本文介绍了node.js - express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如题,express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?这不用我们管吗?如果我们 有2个自定义中间件有顺序要求,那应该怎么定义呢?
解决方案
假设你请求的路径是 `/user',并且此时有如下两个路由同时匹配中你的请求。那么
理论上,这两个路由匹配中的中间件都会执行
后面中间件是否执行,取决于前一个中间件,是否有调用
next()
app.get('/user', function(req, res, next){
console.log('1');
next();
});
app.get('/user', function(req, res, next){
console.log('2');
res.send('user');
});
express内部是通过一个叫做stack
的数组来维护这个次序的。
xx.stack.push(fn1);
xx.stack.push(fn2)
这篇关于node.js - express中间件,他是如何知道哪个中间件先处理,哪个中间件后处理的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文