我应该如何为节点中的环境变量构建集中式配置文件?



我有一个节点应用程序,它被部署到各种不同的网络上,所以env变量在所有这些网络中都会发生变化。目前,process.env无处不在,并且正在增长,因此很难管理、跟踪、配置等。

组织和构建此类问题的最佳方法是什么?我正在考虑只编写一个带有函数和映射的类,该类返回我要求的内容并从各自的文件中调用它,这是一种好的、简单的方法吗?

我为此目的使用配置包。 它允许我将各种环境变量加载为配置参数。

例如,我可以做

const config = require( 'config' )
const myAppConfig = config.get( 'MyApp' )
const privateKey = myAppConfig.privateKey
const publicKey = myAppConfig.publicKey

这会在/config 目录中查找各种配置文件。您可以阅读有关它们的信息;它们具有适用于各种部署环境的精心设置。

该软件包还会在该目录中查找名为custom-environment-variables.json的文件。它指定如何将环境变量映射到配置参数。

下面是加载环境变量MY_PRIVATE_KEYMY_PUBLIC_KEY的文件的示例。

{
"MyApp" : {
"privateKey": "MY_PRIVATE_KEY",
"publicKey": "MY_PUBLIC_KEY"
}
}

这种配置方法非常健壮和灵活。

项目中可以有.env文件。 例如

PORT=5000
USER_TOKEN_SECRET='yourSecret'
MONGODB_URI='mongodb://localhost/test'

之后只需在您的配置文件中使用

require('dotenv').config();
import env from 'env-var';
export const mongoUrl = env.get('MONGODB_URI').asString();
export const apiUrl = env.get('API_URL').asString();

相关内容

  • 没有找到相关文章

最新更新