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

前言

在 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


猜你喜欢

  • npm 包 @huajie-ng/common-v4 使用教程

    在前端开发中,使用各种开源的npm包可以大大提高开发效率。@huajie-ng/common-v4是一个常用的npm包,该包提供了常用的常量、函数等,可以方便地在不同的项目中重复使用。

    3 年前
  • npm 包 book.min.js 使用教程

    在前端开发过程中,我们经常需要使用一些 JavaScript 库来实现一些特定的功能。而 npm 是最流行的包管理器,它可以帮助我们方便地获取、安装和管理这些包。在本篇文章中,我将为大家介绍一个非常实...

    3 年前
  • npm 包 @huang.xinghui/node-gitlab 使用教程

    介绍 @huang.xinghui/node-gitlab 是一款可以在 Node.js 环境下使用的 GitLab API 封装库。它提供了简单易用的 API 方法,可以让开发者轻松地与 GitLa...

    3 年前
  • npm 包 @huajie-ng/simple-com 使用教程

    简介 @huajie-ng/simple-com 是一个简单的前端组件库,提供了一些常用的组件,如按钮和表单等。该组件库使用 Angular 12 编写,可以直接通过 npm 安装使用。

    3 年前
  • npm 包 @huangchaowh/locus 使用教程

    前言 在前端开发中,有时候需要查看变量或者函数的执行情况,以及排查一些问题,这时候我们就需要一个调试工具,本文将介绍一个轻量级调试工具——@huangchaowh/locus。

    3 年前
  • npm 包 @huanjiesm/nodeunrar 使用教程

    前言 在前端开发中,我们经常需要处理文件压缩和解压缩的问题。其中,RAR 是一种常见的压缩格式,而在 Node.js 中,我们可以通过安装第三方 npm 包来实现对 RAR 格式文件的解压缩。

    3 年前
  • npm包@hub9/aws-deployatron使用教程

    什么是@hub9/aws-deployatron @hub9/aws-deployatron是一个用于AWS服务的自动化部署工具包。它允许您快速轻松地部署您的应用程序,而无需繁琐的手动操作。

    3 年前
  • npm 包 @hub9/angular-oauth-client 使用教程

    介绍 @hub9/angular-oauth-client是一个基于Angular的OAuth2.0认证库,提供了一系列的组件和服务来帮助Angular开发者进行OAuth2.0认证,方便开发者集成O...

    3 年前
  • npm 包 bing.min.js 使用教程

    什么是 bing.min.js? bing.min.js 是一个 npm 包,它封装了与微软必应搜索引擎 API 的交互功能。通过 bing.min.js,你可以方便地使用 JavaScript 代码...

    3 年前
  • npm 包 biodata.min.js 使用教程

    在前端开发中,我们常常需要使用各种 npm 包来帮助我们提高开发效率,其中一个非常有用的包是 biodata.min.js。这个包可以帮助我们快速生成假数据,用于模拟后端 API 接口或测试代码功能。

    3 年前
  • npm 包 @icyflame/df 使用教程

    在前端开发过程中,我们常常需要对数据进行处理和格式化。这时候,一个好用的数据格式化工具是必不可少的。@icyflame/df 就是一个基于 JavaScript 的数据格式化工具,它可以帮助我们轻松地...

    3 年前
  • npm 包 @icyflame/mount-point 使用教程

    在前端开发中,我们经常需要将一个组件渲染到指定的 DOM 容器中。而 @icyflame/mount-point 就是一个可以帮助我们方便地将组件渲染到指定容器中的 npm 包。

    3 年前
  • npm 包 @icyflame/node-9gag 使用教程

    简介 @icyflame/node-9gag 是一个基于 Node.js 的 npm 包,它允许你使用 JavaScript 获取 9GAG 的热门帖子,按时间排序。

    3 年前
  • npm 包 bookmark.min.js 使用教程

    简介 bookmark.min.js 是一个轻量级的 JavaScript 库,用于在浏览器中添加书签。它旨在提供优雅的用户体验和自定义选项。 在这篇文章中,我们将详细介绍如何使用 bookmark....

    3 年前
  • npm 包 cert.min.js 使用教程

    什么是 cert.min.js cert.min.js 是一款基于 JavaScript 编写的 npm 包,其主要作用是通过调用浏览器原生的 APIs 来验证前端生成的证书是否合法。

    3 年前
  • npm 包 bit.min.js 使用教程

    在前端开发中,很多时候我们需要引用不同的 JavaScript 库来增强我们的网站或应用程序的功能。npm 是一个流行的 JavaScript 包管理器,它使得在项目中添加和管理外部依赖变得非常简单。

    3 年前
  • npm 包 @inchingorg/xdata 使用教程

    简介 @inchingorg/xdata 是一个基于 Vue 的状态管理库。它提供了一个名为 xdata 的数据仓库,用于在不同组件之间共享状态。通过 xdata,可以轻松实现组件通信、组件状态管理等...

    3 年前
  • NPM 包 @inchingorg/xdata-cli 使用教程

    前端开发中,处理数据是必不可少的环节。然而,常常在数据处理上花费大量时间,特别是当我们需要处理的数据量庞大时。传统的数据处理方式不仅效率低下,而且还容易出错。此时,一个好用的数据处理工具是必不可少的。

    3 年前
  • npm 包 @idagio/cookie-middleware 使用教程

    在前端开发中,我们常常需要在客户端存储一些数据,而实现这个功能的方式就是使用 Cookie。 @idagio/cookie-middleware 是一个能够简化在 Node.js 中使用 Cookie...

    3 年前
  • npm 包 certificate.min.js 使用教程

    前言 在前端开发过程中,我们经常会涉及到与证书有关的场景,如证书认证、数字签名等。由于证书本身的复杂性,我们需要依赖一些优秀的 JavaScript 库来实现相关的功能,其中 certificate....

    3 年前

相关推荐

    暂无文章