app.all和app.use有什么区别?

时间:2012-12-18 17:46:10

标签: javascript node.js express

app.all()app.use()之间的区别是什么?

1 个答案:

答案 0 :(得分:7)

当使用任何类型的请求方法(例如GET,POST,PUT或DELETE)请求特定URI时,将调用

app.all()

另一方面,

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

你可以使用glob(例如app.all())对app.all('admin/*', isAuthorized)执行相同的操作,但app.use()执行从req.path剥离装载URI的额外步骤对于某些中间件非常有用。