在 .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
我正在尝试在节点应用程序和 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