【问题标题】:.env calling variables in different files.env 调用不同文件中的变量
【发布时间】:2019-12-30 01:29:20
【问题描述】:

我有一个 .env 文件,其中存储了两个不同的变量:

x=123
y=456

在同一个文件夹中,我还有另外三个文件,下面有一棵树:

/folder
   /.env
   /config.js
   /app_setup.js
   /match_algo.js

在我的 config.js 文件中,我正在读取 .env 文件中的变量并将它们导出:

const dotenv = require('dotenv');
const cfg = {};
dotenv.config({path: '.env'});

cfg.port = process.env.PORT;
cfg.x = process.env.x;
cfg.y = process.env.y;

module.exports = cfg;

在 app.setup.js 文件中,我使用来自 .env 的变量 x

var firebase = require("firebase");
const Config = require('./config');

var config = {
  apiKey: Config.x
};
firebase.initializeApp(config);

module.exports = firebase;

在 match_algo 中,我使用 .env 中的变量 y 来做其他事情:

const Router = require('express').Router;
const Config2 = require('./config');
const router = new Router();

exports.return_match_uid = function return_match_uid() {
  var variable2 = Config2.y;
.....

显然,match_algo 中的变量y 没有正确读取。我没有看到我的代码有任何问题。

【问题讨论】:

    标签: javascript node.js dotenv


    【解决方案1】:

    当你想给出一个 dotenv 配置的路径时,你需要给出正确的路径。不仅仅是.env。看到这个

    const dotenv = require('dotenv');
    const cfg = {};
    dotenv.config({path: './folder/.env'});
    
    cfg.port = process.env.PORT;
    cfg.x = process.env.x;
    cfg.y = process.env.y;
    
    module.exports = cfg;
    

    希望对你有帮助

    【讨论】:

    • .env文件和config.js在同一个文件夹,我觉得没必要
    • @IsaakNewton 我猜它在 .env 位于根级别时有效。在你的情况下,它不是。此外,您明确使用路径,因为您说的是.env,这不是它所在的位置。它位于/folder 内,因此您需要一条路径。我很快为此创建了一个应用程序。你可以在这里访问它。 repl.it/repls/MuddyViciousComputationalscience 目前它有正确的路径,因此它可以工作,如果你将路径更改为 .env 它不会工作
    • 我根据你的回答修改了我的代码,它就像一个魅力。谢谢你。在这种情况下,什么被认为是根级别?
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多