npm 包 @hbkapps/convict 使用教程

阅读时长 6 分钟读完

介绍

@hbkapps/convict 是一个 Node.js 的配置管理库,它可以使用基于文件、环境变量和命令行参数等多种方式来读取配置,并将其转换为 JavaScript 对象。

该库由 hbkapps 团队维护,在实际项目中得到广泛的应用和验证。本文将为读者提供 @hbkapps/convict 的详细使用教程,并包含了实际示例代码供读者参考。

安装和配置

在开始使用 @hbkapps/convict 之前,需要先安装并配置它。

打开终端并输入以下命令来安装 @hbkapps/convict

在你的项目中,创建一个名为 config.js 的文件,并编写以下代码:

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

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

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

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

以上配置文件演示了一个简单的应用程序配置,该配置包含了三个子配置节 envhttpdatabase,并且允许从环境变量和 JSON 文件中加载配置。此外,还定义了一些默认值和格式检查规则。

注意:由于 .json 文件是可读的,因此其中的任意密钥和值都可能会被泄露。因此,你应该避免在 .json 文件中存储敏感信息。如果需要确实存储敏感信息,请使用环境变量,并将 sensitive 属性设置为 true,以防止该属性的值被 JSON 文件打印出来。

使用示例

config.js 文件中,我们已经完成了所有配置,现在开始使用它们。

首先,让我们尝试获取 http 部分的端口号:

如上所述, config.get 方法可用于读取值。如果该键不存在,则返回 undefined。我们还可以使用 config.has 方法来检查配置值是否存在。

下面是如何在 Node.js Express.js 应用程序中使用 @hbkapps/convict 进行配置的示例:

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

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

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

在上面的代码中,我们将 http.port 中的端口号设为 Express.js 应用程序的端口,并在控制台上输出了监听信息。

接下来,我们可以使用 config.getSchema 方法来检索完整的配置模式(包括所有子配置节点),如下所示:

最后,我们可以使用 config.load 方法来覆盖 @hbkapps/convict 读取的任何配置部分:

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

如上所述,load 方法接受一个对象作为参数,并将其与现有配置合并。请注意,该操作会修改现有配置,因此请谨慎使用。

结论

本文提供了 @hbkapps/convict 的使用教程,并详细讨论了如何安装和配置该库以及在实际项目中使用它。同时,我们还提供了实际示例代码供读者参考。希望读者可以通过本文更好地掌握 @hbkapps/convict,并在实际开发中得到应用。

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

纠错
反馈