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

Node.js启动服务后如何查看process.env环境变量

服务运行状态下查看process.env的几种方法

不需要停掉正在运行的服务,按场景选下面任意一种方法即可:

  • 加开发专用调试路由(适合Web类服务)
    如果你的服务是HTTP服务,直接在入口文件加一段仅非生产环境生效的调试路由,启动后直接请求对应地址就能拿到全量环境变量,以Express框架为例:
    // 生产环境不加载这段逻辑,避免敏感信息泄露
    if (process.env.NODE_ENV !== 'production') {
      app.get('/__debug/get-env', (req, res) => res.json(process.env))
    }
    
    服务启动后访问http://localhost:你的服务端口/__debug/get-env就能看到所有变量,不用操作运行服务的控制台。
  • 监听系统信号触发现有控制台打印(不用额外开端口)
    在服务入口文件加一段信号监听逻辑,SIGUSR1是系统预留的自定义信号,触发后不会终止服务运行:
    process.on('SIGUSR1', () => {
      console.log('=== 当前进程环境变量列表 ===')
      console.log(process.env)
      console.log('=== 当前NODE_ENV ===', process.env.NODE_ENV)
    })
    
    服务启动后,新开一个终端窗口执行ps aux | grep node找到你正在运行的node服务对应的PID(进程ID),再执行kill -SIGUSR1 替换成你查到的PID,原来跑服务的控制台就会直接打印出所有环境变量,服务本身不会中断。
  • 系统层面直接读取进程环境变量(不用改任何代码)
    不管你有没有加上面的逻辑,操作系统会存下每个运行进程的环境变量:
    • macOS/Linux系统:查到PID后执行cat /proc/你的PID/environ | tr '\0' '\n',终端会直接输出该进程的所有环境变量
    • Windows系统:查到PID后执行wmic process where "processid=你的PID" get CommandLine,EnvironmentVariables即可查看
快速确认当前生效的NODE_ENV配置
  • 最稳妥的方式是在服务入口文件最顶部加一行启动日志,每次服务启动第一时间就会打印当前环境,不会出现判断偏差:
    console.log(`服务启动,当前运行环境:${process.env.NODE_ENV ?? '未显式设置,默认走development逻辑'}`)
    
  • 如果你平时需要频繁切换环境,建议在package.json里把不同环境的启动脚本写死,配合cross-env规避Windows/macOS/Linux设置环境变量的语法差异,避免手动输命令写错NODE_ENV值:
    {
      "scripts": {
        "dev": "cross-env NODE_ENV=development node app.js",
        "staging": "cross-env NODE_ENV=staging node app.js",
        "start": "cross-env NODE_ENV=production node app.js"
      }
    }
    
  • 注意不要在业务代码运行过程中随意修改process.env的属性,否则会出现启动时打印的环境和实际运行逻辑不一致的问题,所有环境变量赋值都要放在服务启动执行前完成。

安全提示:process.env里通常包含数据库密码、API密钥等敏感配置,所有调试用的环境变量查询逻辑一定要加环境判断,严禁在生产环境对外暴露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:45:32