Mam plik .env, który przechowuje dwie różne zmienne:

x=123
y=456

W tym samym folderze mam trzy inne pliki, z drzewem poniżej:

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

W moim pliku config.js czytam zmienne w pliku .env i eksportuję je:

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;

W pliku app.setup.js używam zmiennej x z .env:

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

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

module.exports = firebase;

W match_algo używam zmiennej y z .env, aby zrobić coś innego:

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;
.....

Najwyraźniej zmienna y w match_algo nie jest poprawnie odczytywana. Nie widziałem żadnego problemu z moimi kodami.

0
Isaak Newton 29 grudzień 2019, 20:27

1 odpowiedź

Najlepsza odpowiedź

Jeśli chcesz podać ścieżkę do konfiguracji dotenv, musisz podać właściwą ścieżkę. Nie tylko .env. Zobacz

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;

Mam nadzieję że to pomoże

1
Ashish Modi 29 grudzień 2019, 17:29