我使用config library来管理节点应用程序中的配置文件。
我已经通过export app_password=12345
在终端中导出了我的自定义env变量
并通过以下方式将其Map到custom-environment-variable.json
文件
{
"mail": {
"password": "app_password"
}
}
当我在index.js文件(根模块)中使用config.get('mail.password')
时。
我得到了error: Configuration property "mail.password" is not defined
,详细信息如下:
/Users/tzhong/Documents/vidly-
backend/node_modules/config/lib/config.js:203
throw new Error('Configuration property "' + property + '" is not
defined');
^
Error: Configuration property "mail.password" is not defined
at Config.get (/Users/tzhong/Documents/vidly-
backend/node_modules/config/lib/config.js:203:11)
我使用console.log(process.env.app_password)
来检查我的自定义env变量是否存在,并在终端中显示app_password。
Vidly evn is : Vidly backend -- development
Vidly mail server is : dev-mail-server
Mail-password is : 12345
NODE_ENV is : undefined
app: development
Mongan enabled...
Listenning 3000 port ...
我想使用console.log(config.get('mail.password'));
来显示我的自定义变量在终端而不是console.log(process.env.app_password)
任何建议?
最后解决问题:这是一个小错误,在配置库中,创建自定义环境变量的文件名是严格的,文件的名称应该是'custom-environment-variables.json'
,我在'environment'
上拼写错误,毕竟,感谢人们提供其他可用的包
4条答案
按热度按时间pbgvytdp1#
将文件名重命名为“custom-environment-variables.json”,并使用复数“variables”。
avkwfej42#
在
nodejs
中正确的方法是使用.env
文件。在根目录下创建.env
文件。将env变量及其值保存为key=value
,例如password=app_password
在主入口点文件中,Require
dotenv
包,并在require所有模块之后加载env变量,并在顶部添加dotenv.configure()
。有关详细信息,请参见here。dxxyhpgq3#
VS代码终端出现问题。它不拾取文件或对象。尝试外部节点终端。会成功的
zy1mlcev4#
使用**.env代替config。只需输入npm install --保存dotenv**即可添加
您可以通过以下方式访问此文件