我无法在Windows操作系统上为节点正确加载环境变量。
我最初尝试过dotenv,但我遇到的问题是每个网址都声称它未定义或为NULL。
在给它一些想法后,我认为只是'要求'env应该工作,而且确实如此。但是,在我的app.js中,我require('./env');
引用了我保存的env.js文件。然后我发现它并没有渗透到我的模块/服务中,所以我使用了'if MIA'逻辑
if(!process.env.VAR_URL) {
var env = require('../../../env.js')
}
哪个有效,但我必须为每个文件执行此操作。我认为在app.js中包含它就足够了。这感觉非常多余,我不认为我应该这样做。
参考。我的env.js(这是.env)是 -
process.env['MONGODB']="localhost:27017/test-collection"
process.env['MESSAGEURL']="http://localhost:3000/message/"
process.env['VAR_URL']="http://localhost:3000/"
我尝试的dotenv版本是
MONGODB=localhost:27017/test-collection
MESSAGEURL=localhost:3000/message/
VAR_URL=localhost:3000/
基于我在dotenv上找到的文档,你并不是要双引号,这是我原本认为可能会破坏我的网址。
我主要是一个Rails用户并且习惯于利用secrets.yaml - 所以我希望以正确的方式做到这一点,与我正在进行的任何事情相比。
(节点后端,Ang2前端,如果重要的话。我不认为这样做,因为我在Node / Express端遇到错误)
更新:我开始使用传统的env变量来存储这些数据,但我注意到如果我通过bundle.js我可以看到所有这些都未加密。这是预期的行为,或者你如何安全地处理它?</ p>