【问题标题】:What is the difference between app.all and app.use? [closed]app.all 和 app.use 有什么区别? [关闭]
【发布时间】:2012-12-19 05:33:58
【问题描述】:

app.all()app.use() 有什么区别?

【问题讨论】:

  • 文档(alluse)对两者都非常冗长。你到底对什么感到困惑?

标签: javascript node.js express


【解决方案1】:

当使用任何类型的请求方法(例如 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 的额外步骤,这对于某些中间件非常有用。

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 2018-05-08
    • 2015-01-25
    • 2013-06-11
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2010-12-10
    • 2011-09-20
    相关资源
    最近更新 更多