如何有效使用 Express.js 中间件

阅读时长 4 分钟读完

中间件(middleware)是 Express.js 框架中一个非常重要的概念,提供了一种简洁而有效的方式来处理 HTTP 请求和响应,增强 Express.js 的功能特性。在本文中,我们将详细讲解如何有效使用 Express.js 中间件,以及如何为您的应用程序添加自定义中间件。本文旨在帮助您深入了解中间件的技术细节,掌握如何创造高效、可靠的 Express.js 应用程序。

中间件是什么?

在 Express.js 中,中间件是一个函数,它可以接收请求对象(request object)、响应对象(response object)以及 next 函数作为参数。中间件函数在处理请求对象时可以:

  1. 执行任何代码。
  2. 对请求对象和响应对象进行更改。
  3. 结束请求-响应循环。
  4. 调用堆栈中的下一个中间件函数。

下一个中间件函数是通过调用 next() 函数来实现的,如下所示:

中间件可以通过 app.use() 函数来使用,它是 Express.js 中最常用的函数之一。

Express.js 中内置的中间件

Express.js 框架自带了一些很有用的中间件,我们在这里简单的介绍其中三个。

bodyParser

bodyParser 中间件用于解析 HTTP 请求主体,特别是解析 POST、PUT 和 DELETE 请求。它会添加一个 body 属性到请求对象,其中包含 POST 或 PUT 请求参数的对象。

这里我们使用了两种解析方式:json 和 urlencoded。

static

static 中间件用于提供静态文件。可以将一个或多个目录指定为包含静态资产的目录。在 Node.js 中,通常使用 JavaScript 和 CSS 文件作为静态文件。

这里我们将 public 目录指定为静态文件根目录。可以在 URL 中使用 /public/ 文件访问文件。

cookies

cookie-parser 是使用 Express.js 时最常用的 cookie 解析器。它使用 secret 来对 cookie 进行签名,确保 cookie 不被篡改。当请求进入时,中间件会使用 secret 将 cookie 转换回原始值。

在这里,我们将 secret 作为参数传递给 cookie-parser 来确保 cookie 不被篡改。使用 req.cookies 可以访问 cookie 值。

创建自定义中间件

除了 Express.js 中内置的中间件,我们还可以创建自定义中间件。中间件可以用于许多事情,比如记录请求、认证、处理文件上传等。

一个简单的日志中间件示例

这个中间件的作用是在控制台打印出请求时间。中间件函数可以执行任何操作,例如记录请求,更新数据库等。完整代码示例:

-- -------------------- ---- -------
----- ------- - -------------------
----- --- - ----------

--------------------- ---- ----- -
  -------------------- ------------
  -------
---

------------ ------------- ---- -
  --------------- ---------
---

-----------------

当我们访问 localhost:3000时,控制台将打印出时间。可以看到中间件函数首先执行,然后执行了我们的路由处理函数。

总结

中间件是 Express.js 框架的核心特性之一,在应用程序中提供了强大而简洁的处理功能。

在本文中,我们介绍了中间件的定义,讲解了三个内置中间件以及如何创建自定义中间件。希望这些知识可以帮助您优化并增强您的应用程序。

如果您对此感兴趣,可以继续学习和尝试开发自己的中间件。Express.js 中间件的灵活性和可扩展性为您提供了更广泛的自定义和扩展功能。

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

纠错
反馈