npm 包 @vinsidious/nestjs-config 使用教程

阅读时长 8 分钟读完

前言

在 NestJS 这个优秀的 Node.js 框架中,配置文件是不可避免的存在。不过,由于 NestJS 可以让我们通过 .env 文件和配置类(ConfigModule)进行自定义配置。因此,我们在项目中往往需要使用 ConfigModule 来进行配置文件的管理。

作为 NestJS 中一个经典的插件,@nestjs/config 已经成为了一项优秀的解决方案。但对于一个复杂应用,往往需要更复杂的配置文件书写的支持。这个时候,@vinsidious/nestjs-config 便是一项优秀的选择。

介绍

@vinsidious/nestjs-config 是一个支持多种格式的配置文件管理工具,支持 JSON、Yaml、INI、ENV 等多种格式。

使用 @vinsidious/nestjs-config,您可以将大量配置文件放在一个文件夹下,并在整个项目中使用它们。此外,与 @nestjs/config 不同的是,@vinsidious/nestjs-config还支持自动生成类型定义所需的 TypeScript 类型文件。

安装

通过 npm 安装

通过 yarn 安装

使用

初始化

在开始使用 @vinsidious/nestjs-config 之前,您需要初始化它。

在 app.module.ts 中引入 ConfigModule 模块并进行初始化:

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

---------
  -------- -
    ----------------------
      ------------ -------
      --------- -----
    ---
  --
--
------ ----- --------- --
  • envFilePath: env 文件或其他格式文件放置的位置。如果使用了多种文件格式,就应该以逗号作为分隔符字符串来描述文件的名称。

  • isGlobal: 默认为 false。当为 true 时,将会把 ConfigModule 变成多个模块间共享的全局对象,在整个项目中的每个模块上导出 ConfigService。

配置文件

在 config 目录中创建配置文件,其中各个配置文件可以分别使用不同的文件格式。例如,我们可以定义一个 user.yaml 的配置文件:

使用配置文件

ConfigService

使用 ConfigService 获取配置文件的数据。例如:

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

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

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

ConfigType 强类型

@vinsidious/nestjs-config 还可以通过 ConfigType 来指定 TypeScript 的类型,来更好的支持 IDE 自动补全和 TypeScript 强类型。

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

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

自动加载

您还可以将所有的配置文件加在到一个对象中进行管理。

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

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

@vinsidious/nestjs-config 会自动查找 config 目录下的所有配置文件并将这些文件自动合并成一个对象。

示例代码

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

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

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

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

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

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

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

结论

@vinsidious/nestjs-config 带来了极高的灵活性和可扩展性,让我们可以更好地处理复杂的配置文件。

尝试使用 @vinsidious/nestjs-config,您将会发现它是一个非常优秀的配置文件管理工具,能够让您的 NestJS 项目更加完整和稳定。

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

纠错
反馈