npm 包 express-request-id 使用教程

阅读时长 4 分钟读完

在现代化的 Web 应用开发过程中,拥有一个唯一标识符的请求 ID 在某些情形下十分重要和有用,例如在日志中将整个请求跟踪下来或者跟踪异常和错误。npm 包 express-request-id 可以很好地处理这类需求,本文将为大家介绍该包的使用方法和注意事项。

express-request-id 简介

express-request-id 是一个轻量级的 npm 包,它用于为 Express 应用程序生成唯一的请求 ID。通过在请求对象上增加一个 UUID (Universally Unique Identifier) 属性,实现了唯一标识每个请求。

安装

安装 express-request-id 可以使用 npm:

安装前提

为了能使用 express-request-id,你需要保证已经安装以下包:

  • Node.js - 建议使用版本 v12+
  • Express - 建议使用版本 4+

使用方法

要为 Express 应用程序启用 express-request-id,需要先引入该包并使用它提供的中间件函数。在应用程序初始化期间,将此中间件函数添加为要处理的请求的处理函数之一:

此时,我们已经成功在应用程序中启用了 express-request-id。在请求发生时,该中间件将生成一个 UUID 并添加到请求对象的头部。

请求对象现在将有一个名为 "req.id" 的属性,该属性包含新生成的 UUID。您可以通过在请求处理程序函数中使用 "req.id" 属性来访问该 ID。例如:

配置

在 express-request-id 中,有一些可用的选项可以用于配置中间件。默认情况下,它将生成一个符合 v4 UUID 规范的随机字符串并将其添加到请求 objects 中。以下是可供配置的选项:

  • uuidVersion - 指定要使用的 UUID 版本,默认为 v4。
  • fieldName - 指定向请求对象添加 UUID 的属性名,默认为 "id"。
  • headerName - 指定应添加到请求头的 UUID 属性名。如果设置为 null,则不添加 UUID 头。默认为 "X-REQUEST-ID"。
  • generator - 指定自定义 UUID 生成器。该生成器应该是一个返回 UUID 的无参数函数。

使用自定义选项来启用 express-request-id,请按如下方式使用:

示例代码

下面是一个完整的示例代码,用于演示 express-request-id 的用途:

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

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

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

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

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

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

在此示例中,我们将添加两个 Express 中间件函数:express-request-id 和 Morgan。Morgan 是一个常用的日志记录器,我们将用它来查看记录的请求日志。在每个路由处理程序中,我们将使用 "req.id" 属性来打印请求 ID。

结论

使用 express-request-id 可以方便地为 Express 应用程序添加一个独特的请求 ID,以帮助开发者追踪请求并监视日志。它的使用非常简单,只需在应用程序启动时使用中间件即可。同时,该包也提供了一些可用的配置选项,可以用于根据自己的需求进行偏好调整和更改。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/express-the-request-id