在 .env 文件中使用插值

using interpolation in .env files

我正在尝试在节点应用程序和 dotenv NPM 模块中使用 .env 文件来读取它,但使用了一些变量和插值。 尽管在标准 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 配置到 运行? 也许我可以在应用程序启动时 'source' 它并为所有变量使用 export ,但这似乎很笨拙...

dotenv 不会扩展环境变量,但除了 dotenv 之外,您还可以使用 dotenv-expand 来获得此行为:

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