expess中的中间件和app.use是什么?

时间:2019-06-22 16:36:53

标签: javascript node.js express

刚开始要说。真的很抱歉,如果您将其视为重复项,但是我想问您什么是中间件。我知道stackoverflow也有类似的问题,但是如果您能回答这个问题,我将非常高兴。还有.use是什么?我们在哪里使用它?非常感谢你!

1 个答案:

答案 0 :(得分:1)

中间件是一个术语,指的是“预处理”传入请求的请求处理程序。给定的中间件通常会在大量传入请求上运行。通常,它不发送最终响应,它只是对请求进行一些设置或预处理,然后将请求传递给最终的处理程序。人们发现与中间件有关的事物有成千上万种。

通常的想法是,将中间件放在一个地方并配置它以应用于大量请求,而不是必须将其添加到应该应用于其的每个请求处理程序中,都比较容易。

我将提供一些示例:

  1. 检查请求者是否在站点上通过了身份验证/登录。如果不是,则重定向到登录页面。如果是这样,则将请求传递到实际的页面请求处理程序。
  2. 记录使用情况或性能统计信息。
  3. 预先解析查询参数,因此已经为请求处理程序进行了解析
  4. 预先解析帖子正文,因此已经为请求处理程序进行了解析
  5. 为响应预设所需的跨源标头

希望,您会看到一个普遍的想法,即中间件通常用作预安装工作,可以在一个地方完成,而不必将其添加到每个请求处理程序中。

请记住,可以将中间件配置为确定运行哪个传入请求。它只能用于单个URL(非典型),一整组URL(例如,所有内容都以特定路径开头)或整个网站上的所有URL。