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

2022-09-29
前端之家小编收集整理的我应该在每个节点JS文件中调用dotenv吗?内容,希望整理的这个开发编程问题我应该在每个节点JS文件中调用dotenv吗?能够快速解决!

代码问题

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

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

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

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
}

问题答案

您接受了第一条评论,但这不是正确的方式/答案。 您可以在入口文件(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

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


我正在尝试使用node.js,react和MongoDB将我的应用程序部署到Heroku;部署成功;但是,该网站无法从MongoDB获
里面的箱子有问题吗 <pre><code>case&#39;usal&#39;: d= (while(s2&gt;0)
我正在尝试从Wikipedia中查找页面列表的Wiki ID。这是我的想法,但是在打印“简介”时出现错误:“类型
我正在学习ES6,并且正在学习免费的在线课程。在课程中,我们涵盖了Promises,所以我有: <pre><code>i
当我尝试运行此代码时,它显示“ com.mysql.jdbc.JDBC4ResultSet@7e2d773b”,当前该表只有一条记录。 <pre><co