You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js加载json配置文件时自动替换环境变量的实现方法

实现方案

你可以自己实现一个极简的JSON配置加载函数,不需要修改原有启动逻辑,也不用依赖sed脚本,只需替换原来项目中直接加载JSON配置的代码即可。

无额外依赖的原生实现

核心逻辑是先读取配置文件的原始字符串,通过正则匹配所有%变量名%格式的占位符,替换为对应环境变量值后再解析为JSON对象:

const fs = require('fs');

function loadConfig(configPath) {
  // 读取配置文件原始内容
  const rawConfig = fs.readFileSync(configPath, 'utf8');
  // 替换所有占位符
  const processedConfig = rawConfig.replace(/%([A-Z0-9_]+)%/g, (_, varName) => {
    // 若需要缺失环境变量时直接报错启动失败,可替换为下面的逻辑
    // return process.env[varName] ?? (() => { throw new Error(`缺失必填环境变量: ${varName}`) })()
    return process.env[varName] ?? _;
  });
  // 解析为JSON对象返回
  return JSON.parse(processedConfig);
}

// 调用示例,替换原有 require('./config.json') 即可
const config = loadConfig('./config.json');

使用说明

  • Docker侧不需要做任何修改,原来怎么给容器传DBHOST、DBPORT等环境变量,现在保持不变即可,Node进程会自动读取process.env中的变量完成替换
  • 注意:如果你的配置值本身包含%字符,可根据实际场景调整正则匹配规则,避免误替换

内容的提问来源于stack exchange,提问作者brettnem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:27:08