【发布时间】:2012-12-19 05:33:58
【问题描述】:
app.all() 和 app.use() 有什么区别?
【问题讨论】:
标签: javascript node.js express
app.all() 和 app.use() 有什么区别?
【问题讨论】:
标签: javascript node.js express
当使用任何类型的请求方法(例如 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('admin/*', isAuthorized))对 app.all() 执行相同的操作,但 app.use() 执行了从 req.path 剥离挂载 URI 的额外步骤,这对于某些中间件非常有用。
【讨论】: