我应该在每个节点JS文件中调用dotenv吗?

我想使用环境变量。不幸的是,我是一个没有经验的开发人员,很晚才决定在我的项目中实施这样的解决方案。

我正在尝试将位于.env文件中的环境变量注入所有JS文件中(并非全部使用环境变量,但我认为这样会更快,更容易)。目前,我正在使用dotenv软件包,但显然它可以一次处理一个文件。

我应该以标准方式使用dotenv吗?也许有一个我不知道的漏洞,这就是为什么以这种方式使用环境变量非常不受欢迎。

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
}
wangleaishang9 回答:我应该在每个节点JS文件中调用dotenv吗?

您接受了第一条评论,但这不是正确的方式/答案。 您可以在入口文件(index.js、server.js ..)的最开始包含 require('dotenv').config(),只需调用 process.env.VARIABLE_NAME

,

您不需要在每个文件中写入require('dotenv')。config()。只需将其作为index.js或运行程序时首先执行的主文件中的顶层语句即可。

,

就像您提到的文件注释一样,您应该为ENV提供一个入口点。您不想在每个文件中require('dotenv')

相反,请在utils或core文件夹中创建一个新文件(命名为environment.js)。

require('dotenv').config();

/* eslint no-process-env:0 */
module.exports.default = {

    env: process.env.env,url: process.env.url,apiUrl: process.env.apiUrl,logLevel: process.env.logLevel,db: {
        host: process.env.db_host
        port: process.env.db_port
    }
    // Grab everything in you .env file here
}

然后在每个其他文件中,您都可以将配置包含在漂亮的json对象中。

const config = require('../utils/environment');

dbConnector(config.db.host,config.db.port);
// blah blah blah
本文链接:https://www.f2er.com/3170134.html

大家都在问