请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

顺序问题

app.use()无论写在app.get()的前面或后面,app.use()一定最先执行吗
例如:
app.use((req,res,next) => {console.log(1);})
app.get((req,res,next) => {console.log(2);})
app.use((req,res,next) => {console.log(3);})
打印结果是什么?一定是1,3,2吗

正在回答

1回答

按理说,应该是按照顺序执行的,打印 123

这应该是我源码中的一个小 bug ,应该排个序的。


不过,在实际应用中,一般会先配置 use 中间件,然后再配置路由。

所以,这个问题影响不大。

1 回复 有任何疑惑可以回复我~
  • 是呀,这个源码当中直接concat了all和get里的,所以无论写的时候什么顺序,最后都是先执行all的所有中间件,然后才是get的或者是post的中间件~,所以是不是应该在routes push的时候给个时间戳,再排序是不是就能按顺序执行了,或者还有啥更聪明的排序方法?
    回复 有任何疑惑可以回复我~ 2022-04-21 14:33:13
  • 嗯??express本来就是先执行use的中间件,然后才是get或者post的吗?尴尬了。。。
    回复 有任何疑惑可以回复我~ 2022-04-21 15:05:55

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信