在 .env 文件中使用插值

dcs*_*san 8 config environment-variables node.js dotenv

我尝试使用.env节点应用程序和dotenvNPM 模块中的文件来读取它,但使用一些变量和插值。不过,在标准 bash 文件中有效的内容似乎无法在 .env 配置文件中运行。例如,给定:

APP_NAME=tixy
MONGODB_URI="mongodb://127.0.0.1:27017/${APP_NAME}"
Run Code Online (Sandbox Code Playgroud)

会直接以代码形式输出

const mongoUri = process.env.MONGODB_URI
Run Code Online (Sandbox Code Playgroud)

作为"mongodb://127.0.0.1:27017/${APP_NAME}"

有没有办法让.env配置运行?也许我可以在应用程序启动时“获取”它并用于export所有变量,但这似乎很麻烦......

Mur*_*nik 17

dotenv不会扩展环境变量,但您可以使用dotenv-expandexcept 来dotenv获得此行为:

var dotenv = require('dotenv')
var dotenvExpand = require('dotenv-expand')
 
var myEnv = dotenv.config()
dotenvExpand.expand(myEnv)

// Should be OK now.
const mongoUri = process.env.MONGODB_URI
Run Code Online (Sandbox Code Playgroud)