我应该在每个节点 JS 文件中调用 dotenv 吗?
Should I call dotenv in every node JS file?
我想使用环境变量。不幸的是,我是一个没有经验的开发人员,很晚才决定在我的项目中实施这样的解决方案。
我正在尝试将位于 .env 文件中的环境变量注入所有 JS 文件(并非所有文件都使用环境变量,但我认为这会更快更容易)。目前,我正在使用 dotenv 包,但它显然是同时在一个文件中工作。
我应该以标准方式使用 dotenv 吗?也许有一个我不知道的漏洞,这就是为什么以这种方式使用环境变量非常不受欢迎。
if (process.env.NODE_ENV !== 'production') {
require('dotenv').config();
}
就像您提到的文件评论一样,您应该有一个 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
你不需要在每个文件中都写 require('dotenv').config() 。只需将其作为 index.js 中的顶部语句或当您 运行 您的程序时首先执行的主文件。
您接受了第一条评论,但它不正确 way/answer。
您可以在入口文件的最开头包含 require('dotenv').config()
(index.js , server.js ..),您只需调用即可在应用程序的任何位置获取 process.env 变量process.env.VARIABLE_NAME
我想使用环境变量。不幸的是,我是一个没有经验的开发人员,很晚才决定在我的项目中实施这样的解决方案。
我正在尝试将位于 .env 文件中的环境变量注入所有 JS 文件(并非所有文件都使用环境变量,但我认为这会更快更容易)。目前,我正在使用 dotenv 包,但它显然是同时在一个文件中工作。
我应该以标准方式使用 dotenv 吗?也许有一个我不知道的漏洞,这就是为什么以这种方式使用环境变量非常不受欢迎。
if (process.env.NODE_ENV !== 'production') {
require('dotenv').config();
}
就像您提到的文件评论一样,您应该有一个 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
你不需要在每个文件中都写 require('dotenv').config() 。只需将其作为 index.js 中的顶部语句或当您 运行 您的程序时首先执行的主文件。
您接受了第一条评论,但它不正确 way/answer。
您可以在入口文件的最开头包含 require('dotenv').config()
(index.js , server.js ..),您只需调用即可在应用程序的任何位置获取 process.env 变量process.env.VARIABLE_NAME