5

app.all()和 和有什么不一样app.use()

4

1 回答 1

7

app.all()将在使用任何类型的请求方法(例如 GET、POST、PUT 或 DELETE)请求特定 URI 时调用。

app.use()另一方面,对于您可能拥有的任何中间件都更有用,因为它“挂载”到路径前缀上,并且在请求该路由下的 URI 时将被调用。因此,例如app.use('admin/', isAuthorized)可以是一个中间件,它将确保在“admin/”下访问的任何 URI(例如“admin/settings”或“admin/bing/bang”)仅由授权用户请求。如果您不提供挂载路径,则默认使用根 URI“/”。

app.all()您可以通过使用 glob(例如app.all('admin/*', isAuthorized))来做同样的事情,但是app.use()需要额外的步骤来剥离req.path对于某些中间件非常有用的挂载 URI。

于 2012-12-18T21:32:01.563 回答