全球价值观 – 反模式?
我最近被告知,访问其他地方的process.env
值,但启动文件是反模式。 真的吗? 如果是这样,我该如何访问分配的值? 我应该把它们分配到global
范围吗? 我真的不明白为什么这是反模式,有人可以向我解释这一点吗?
来自环境的configurationvariables往往是不可读的。 所以,你可能最终会得到像process.env.PRODUCTION_DATABASES_MONGO_PORT
这样会弄乱你的代码。 如果在不同的文件中有很多process.env
-s,可能很难理解什么样的可能选项(你应该运行NODE_ENV=dev node index
还是NODE_ENV=development node index
或FOO=true node index
?)。
作为最简单的解决scheme,不需要任何dependency injection,您可以简单地在根文件夹中创buildconfig.js
,如下所示:
module.exports = { databases: { mongo: { port: process.env.BLAH_BLAH_BLAH } } // ... };
并只需要它,无论你想要的。