npm 包 @hbkapps/convict 使用教程

介绍

@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


猜你喜欢

  • npm 包 template-saas-theme 使用教程

    前言 前端开发是一项需要不断学习和探索新技术的工作,其中 npm 包的应用非常广泛,可以方便地将别人开发好的代码引入到项目中,避免重复造轮子。在本文中,我们将介绍一款常用的 npm 包 templat...

    3 年前
  • npm 包 videojs-immerxon 使用教程

    在前端开发中,视频播放是非常常见的一种需求。为了方便快速地实现视频播放功能,我们可以使用许多现有的 npm 包来降低开发难度。其中,videojs-immerxon 是一个功能强大的 npm 包,它可...

    3 年前
  • npm 包 grow-element-fn 使用教程

    在前端开发过程中,使用现有的 npm 库是非常常见的。 npm 是目前最大的软件注册表,也是 JavaScript 生态系统中的核心组成部分。其中一个非常有用的 npm 包是 grow-element...

    3 年前
  • npm 包 file-find 使用教程

    在前端开发中,文件的查找和操作是必不可少的。npm 包 file-find 就是一个非常好用的文件查找工具,让我们更轻松地完成文件的操作。 安装 使用 npm 安装 file-find: --- --...

    3 年前
  • npm 包 with-node-env 使用教程

    介绍 with-node-env 是一个 npm 包,可以让我们在编写 Node.js 应用时更加方便地使用不同的环境变量。 在 Node.js 中,我们可以使用 process.env 来访问环境变...

    3 年前
  • npm 包 casino 使用教程

    引言 在前端开发中,我们经常使用一些 npm 包来完成某些任务,提高开发效率。今天我要介绍的是一个 npm 包 casino,它是一个用于生成随机数字和字母的 JavaScript 库。

    3 年前
  • npm 包 generator-codexmedia 使用教程

    简介 在前端开发中,我们经常需要使用一些工具来加速开发效率,如构建工具、脚手架等。而 generator-codexmedia 就是一个可以帮助我们快速生成前端项目的 npm 包。

    3 年前
  • npm 包 generator-lemon-ts 使用教程

    在前端开发中,我们常常需要创建一些重复的代码文件。为了避免重复劳动,我们可以使用 Yeoman 工具来自动创建项目结构。其中一个非常好用的 Yeoman 生成器是 generator-lemon-ts...

    3 年前
  • npm 包 generator-react-component-boilerplate 使用教程

    什么是 generator-react-component-boilerplate? generator-react-component-boilerplate 是一个 npm 包,它可以生成一个基础...

    3 年前
  • npm 包 @longweiquan/plywood-postgres-requester 使用教程

    简介 @longweiquan/plywood-postgres-requester 是一个用于连接 PostgreSQL 数据库的 Node.js 模块。它基于 plywood-postgres-r...

    3 年前
  • npm 包 react-native-keycloak 使用教程

    简介 Keycloak 是一款开源的身份认证和访问授权管理平台,react-native-keycloak 则是一款基于 Keycloak 的 React Native 插件。

    3 年前
  • npm 包 json-parser-so-spec 使用教程

    在前端开发中,经常需要解析 JSON 数据。而针对 JSON 格式的数据解析,我们可以使用一些常见的工具和库,比如原生 JSON 对象、第三方库 JSON.parse() 或者 jQuery.pars...

    3 年前
  • npm 包 itee-boilerplate 使用教程

    简介 npm 是 Node.js 平台上的一个全球最大的包管理器,对于前端开发者来说,使用 npm 包可以方便快捷地获取需要的第三方库,进而提高开发效率。itee-boilerplate 是一个为了支...

    3 年前
  • npm 包 react-router-preload-core 使用教程

    什么是 react-router-preload-core? react-router-preload-core 是一个 React 路由预加载的核心库,可以帮助开发者预先加载页面组件和相关资源,提高...

    3 年前
  • npm 包 react-router-preload-tree 使用教程

    介绍 react-router-preload-tree 是一个能够帮助 React 开发者快速、高效地预加载路由页面资源的 npm 包。 当我们进行 React 项目开发时,经常会遇到一些需要做路由...

    3 年前
  • npm 包 svgo-inline-loader 使用教程

    什么是 svgo-inline-loader svgo-inline-loader 是一个 webpack loader,用于将 SVG 图标文件转换为可嵌入 HTML 中的内联 SVG。

    3 年前
  • npm 包 swarm-ron-grammar 使用教程

    简介 Swarm-ron-grammar 是一个基于 JavaScript 的 NPM 包,用于实现语法解析和代码转换的功能。它可以通过预定义的语法规则,将一种编程语言(比如 Java 或 C++)的...

    3 年前
  • npm 包 Swarm-ron-uuid 使用教程

    介绍 Swarm-ron-uuid 是一款基于 JavaScript 编写的 NPM 包,它提供了一种用于生成全局唯一标识符 (GUID) 的算法。该算法基于 SWARM 和 RON 技术,可以有效地...

    3 年前
  • npm 包 tech-radar-google-trends 使用教程

    简介 tech-radar-google-trends 是一个基于 Google Trends API 打造的 npm 包,专门用于前端开发中对技术趋势的分析和可视化呈现。

    3 年前
  • npm 包 xsvd 使用教程

    概述 xsvd 是一个用于 Flash/外部 RAM 编程器的命令行工具,支持多种调试器、不同的文件格式以及各种芯片。 在前端开发中,我们可能需要将代码编译成可执行文件或数据存储在设备上,而这些设备往...

    3 年前

相关推荐

    暂无文章