在 Express.js 中使用自定义中间件

阅读时长 3 分钟读完

Express.js 是一个流行的 Node.js Web 框架,它提供了一个简单而强大的方式来构建 Web 应用程序。中间件是 Express.js 的一个重要概念,它允许我们在请求和响应之间添加功能,比如路由、验证和日志记录。在本文中,我们将学习如何创建和使用自定义中间件。

创建自定义中间件

在 Express.js 中,中间件是一个函数,它有三个参数:请求对象(req)、响应对象(res)和下一个中间件函数(next)。下一个中间件函数是一个回调函数,它告诉 Express.js 在执行完当前中间件后继续执行下一个中间件。

下面是一个简单的自定义中间件示例,它会记录每个请求的时间戳:

我们可以将这个中间件添加到 Express.js 应用程序中:

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

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

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

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

在这个示例中,我们使用 app.use 方法将 logTimestamp 中间件添加到应用程序中。这意味着每个请求都会经过这个中间件,然后继续执行下一个中间件或路由处理程序。

使用中间件处理请求

我们可以使用自定义中间件处理请求,比如验证请求头、身份验证和日志记录。下面是一个示例,它会验证请求头中是否包含特定的 API 密钥:

在这个示例中,如果请求头中不包含 x-api-key 或者值不等于 'my-secret-api-key',则返回 401 状态码和消息 "Unauthorized"。否则,请求将继续执行下一个中间件或路由处理程序。

我们可以将这个中间件添加到应用程序中,并将其应用于需要验证 API 密钥的路由:

在这个示例中,我们将 validateApiKey 中间件应用于 /api/data 路由。这意味着每个请求都需要通过该中间件进行验证,然后才能访问 /api/data 路由。

结论

在本文中,我们学习了如何创建和使用自定义中间件来增强 Express.js 应用程序的功能。我们了解了中间件的基本概念以及如何使用它们来处理请求和响应。我们还通过示例代码演示了如何创建和使用自定义中间件来验证 API 密钥和记录时间戳。希望本文对您有所帮助,让您更好地理解 Express.js 中间件的工作原理,并在实际项目中应用它们。

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

纠错
反馈