Ответ 1
Как насчет использования require('dotenv').config({path:__dirname+'/./../../.env'})
?
Ваша проблема, кажется, путь выполнения.
У меня есть файл.env в файле корневой папки
NODE_ENV=development
NODE_HOST=localhost
NODE_PORT=4000
NODE_HTTPS=false
DB_HOST=localhost
DB_USERNAME=user
DB_PASSWORD=user
И файл server.js
папке root/app/config/server.js
. Первая строка файла server.js
require('dotenv').config();
Я также пробовал:
require('dotenv').config({path: '../.env'})
;
require('dotenv').config({path: '../../.env'})
;
Однако моя переменная env не загружается, когда я запускаю файл server.js
из командной строки
node root/app/config/server.js
Если я использую визуальную студию и нажимаю F5, она загружается!
Я не уверен, что я делаю неправильно, что мне не хватает. Любое предложение очень ценится. Благодарю.
Как насчет использования require('dotenv').config({path:__dirname+'/./../../.env'})
?
Ваша проблема, кажется, путь выполнения.
Добавляя немного нюанса к ответу выше - если вы вызываете dotenv
из вложенного файла, а ваш .env
файл находится в корне проекта, то способ, которым вы хотите подключить точки, состоит в следующем:
require('dotenv').config({path:'relative/path/to/your/.env'})
Это решило мои проблемы в Node v8.14.1
:
const path = require('path')
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
Простое выполнение require('dotenv').config({path:__dirname+'/./../../.env'})
привело к расположению, которое было разрешено как /some/path/to/env/./../../.env
Вот еще одна хорошая альтернатива:
require('dotenv').config({ path: require('find-config')('.env') })
Это будет повторять родительские каталоги, пока не найдет файл .env для использования.
В качестве альтернативы вы также можете использовать этот модуль, называемый ckey вдохновленный одной строкой выше.
Файл .env из основного каталога.
# dotenv sample content
[email protected]
PASSWORD=iampassword123
API_KEY=1234567890
какой-то файл js из подкаталога
const ck = require('ckey');
const userName = ck.USER; // [email protected]
const password = ck.PASSWORD; // iampassword123
const apiKey = ck.API_KEY; // 1234567890