Express.js 入门指南:中间件

· 约 4 分钟读完

Express.js 是 Node.js 中最受欢迎的 Web 框架,它提供了一个简单易用的接口来构建 Web 应用。中间件是 Express.js 中一个非常重要的概念,本文将深入探讨中间件的概念以及如何使用它们来构建更好的 Web 应用。

什么是中间件?

中间件是一个函数,它可以访问请求对象(request object)(req)、响应对象(response object)(res)和 web 应用中处理请求-响应循环流程中的下一个中间件函数的变量(通常缩写为 next)。中间件函数可以执行以下任务:

  • 执行任何代码。
  • 更改请求和响应对象。
  • 终止请求-响应循环。
  • 调用堆栈中的下一个中间件。

如果当前中间件没有终止请求-响应循环,那么它必须调用 next() 方法将控制权传递给下一个中间件函数。否则,请求将被挂起。

编写中间件

可以使用 use() 方法将中间件函数添加到 Express.js 应用程序中。以下是一个简单的 Express.js 应用程序:

在上面的应用程序中,我们定义了一个中间件函数,它将在每个请求上打印 "Hello from middleware!"。然后,我们将中间件函数添加到应用程序中,使用 use() 方法。最后,我们定义了一个路由处理程序,使应用程序能够响应 / 路径的 GET 请求。

路由级别中间件

路由级别中间件与应用程序级别中间件的工作方式相同。唯一的区别在于,路由级别中间件仅适用于与其关联的路由。以下是一个示例:

在上面的应用程序中,我们定义了一个名为 router 的子应用程序,并将路由级别中间件添加到路由中。我们还定义了一个处理程序,用于响应 /router 路径的 GET 请求。最后,我们使用 use() 方法将 router 子应用程序添加到主 Express.js 应用程序中,并将其映射到 /router 路径。

错误处理中间件

错误处理中间件是一个中间件,它接受四个参数。这些参数按照顺序分别是:错误对象(err)、请求对象(req)、响应对象(res)以及 next 方法。错误处理中间件可用于处理应用程序中的任何错误。以下是一个示例:

在上面的应用程序中,我们定义了一个中间件函数来处理所有未知的路由请求。我们创建了一个错误对象,并将其传递给 next() 方法。错误处理中间件将处理该错误,并将其转换为 HTTP 响应。如果错误对象有状态属性,则使用该状态代码。否则,将默认使用 500 代码。

结束语

在本文中,我们深入讲解了中间件的概念以及如何使用它们来构建更好的 Express.js 应用程序。我们讨论了中间件的类型,包括应用程序级别、路由级别和错误处理中间件,并提供了对每个中间件类型的示例。

对于那些刚开始使用 Express.js 的开发人员来说,中间件是一个非常重要的概念。通过了解中间件的工作方式,开发人员可以更好地理解如何使用它们来构建更好的 Web 应用程序。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d7b5efa941bf7134dd1547