一尘不染

app.all('*')和app.use('/')之间的区别

node.js

app.all('*', ... )app.use('/', ...)Node.JS Express 之间有有用的区别吗?


阅读 652

收藏
2020-07-07

共1个答案

一尘不染

在大多数情况下,它们将等效地工作。最大的不同是中间件的应用顺序:

  • app.all() 附加到应用程序的路由器,因此只要到达app.router中间件即可使用(该中间件处理所有方法路由… GET,POST等)。

注意:app.router已在Express 4.x中弃用

  • app.use()附加到应用程序的主要中间件堆栈,因此按中间件指定的顺序使用。例如,如果您把它放在第一位,它将是第一件事。如果将它放在最后(在路由器之后),则通常根本不会运行它。

通常,如果要对所有路由进行全局处理,则app.use()是更好的选择。而且,它将来出现错误的可能性较小,因为express
0.4可能会删除隐式路由器(这意味着路由器在中间件中的位置将比现在更重要,因为从技术上讲,您甚至不必使用它马上)。

2020-07-07