используя интерполяцию в .env файлах - PullRequest
1 голос
/ 30 июня 2019

Я пытаюсь использовать файл .env в приложении узла и модуль dotenv NPM для его чтения, но использую некоторые переменные и интерполяцию.то, что работает в стандартном bash-файле, похоже, не работает в конфигурационном файле .env.например, учитывая:

APP_NAME=tixy
MONGODB_URI="mongodb://127.0.0.1:27017/${APP_NAME}"

будет получен непосредственно в коде

const mongoUri = process.env.MONGODB_URI

как "mongodb://127.0.0.1:27017/${APP_NAME}"

, есть ли способ получить конфигурацию .env длябежать?возможно, я мог бы «найти» его при запуске приложения и использовать export для всех переменных, но это кажется глупым ...

1 Ответ

1 голос
/ 30 июня 2019

dotenv не расширяет переменные среды, но вы можете использовать dotenv-expand в дополнение к dotenv, чтобы получить это поведение:

var dotenv = require('dotenv')
var dotenvExpand = require('dotenv-expand')

var myEnv = dotenv.config()
dotenvExpand(myEnv)

// Should be OK now.
const mongoUri = process.env.MONGODB_URI
...