介绍
@hbkapps/convict
是一个 Node.js 的配置管理库,它可以使用基于文件、环境变量和命令行参数等多种方式来读取配置,并将其转换为 JavaScript 对象。
该库由 hbkapps
团队维护,在实际项目中得到广泛的应用和验证。本文将为读者提供 @hbkapps/convict
的详细使用教程,并包含了实际示例代码供读者参考。
安装和配置
在开始使用 @hbkapps/convict
之前,需要先安装并配置它。
打开终端并输入以下命令来安装 @hbkapps/convict
:
$ npm install @hbkapps/convict
在你的项目中,创建一个名为 config.js
的文件,并编写以下代码:
-- -------------------- ---- ------- ----- ------- - ---------------------------- ----- ---- - ---------------- ----- ------ - --------- ---- - ---- ---- ----------- -------------- ------- -------------- -------------- -------- -------- -------------- ---- ---------- -- ----- - ----- - ---- ---- ---- -- ------- ------- ------- -------- ----- ---- ------ - -- --------- - ----- - ---- --------- ---- --------- ------- ---- -------- ------------ ---- --------- -- ----- - ---- --------- ------ ------- ------- -------- ----- ---- --------- -- --------- - ---- --------- ---- ------ ------- ---- -------- ------- ---- --------- -- --------- - ---- --------- ---------- ------- ---- -------- --- ---- -------------- ---------- ---- -- --------- - ---- --------- ------ ------- ---- -------- -------- ---- --------- - - --- ----- --- - ------------------ ------------------------------------ ---------------- ----------------- -------- -------- --- -------------- - -------
以上配置文件演示了一个简单的应用程序配置,该配置包含了三个子配置节 env
、http
和 database
,并且允许从环境变量和 JSON 文件中加载配置。此外,还定义了一些默认值和格式检查规则。
注意:由于 .json
文件是可读的,因此其中的任意密钥和值都可能会被泄露。因此,你应该避免在 .json
文件中存储敏感信息。如果需要确实存储敏感信息,请使用环境变量,并将 sensitive
属性设置为 true
,以防止该属性的值被 JSON 文件打印出来。
使用示例
在 config.js
文件中,我们已经完成了所有配置,现在开始使用它们。
首先,让我们尝试获取 http
部分的端口号:
const config = require("./config"); console.log("Server is listening on port", config.get("http.port"));
如上所述, config.get
方法可用于读取值。如果该键不存在,则返回 undefined
。我们还可以使用 config.has
方法来检查配置值是否存在。
下面是如何在 Node.js Express.js 应用程序中使用 @hbkapps/convict
进行配置的示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - -------------------- ----- --- - ---------- --------------- ------------------------- --------------------------- -- -- - ------------------- -- --------- -- ---- --------------------- ---
在上面的代码中,我们将 http.port
中的端口号设为 Express.js 应用程序的端口,并在控制台上输出了监听信息。
接下来,我们可以使用 config.getSchema
方法来检索完整的配置模式(包括所有子配置节点),如下所示:
const schema = config.getSchema(); console.log(schema);
最后,我们可以使用 config.load
方法来覆盖 @hbkapps/convict
读取的任何配置部分:
-- -------------------- ---- ------- ----- --------- - - ----- - ----- ---- -- --------- - ----- ------------- --------- --------- - -- -----------------------
如上所述,load
方法接受一个对象作为参数,并将其与现有配置合并。请注意,该操作会修改现有配置,因此请谨慎使用。
结论
本文提供了 @hbkapps/convict
的使用教程,并详细讨论了如何安装和配置该库以及在实际项目中使用它。同时,我们还提供了实际示例代码供读者参考。希望读者可以通过本文更好地掌握 @hbkapps/convict
,并在实际开发中得到应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056bdd81e8991b448e588f