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

Windows系统下如何设置process.env.SOME_KEY并在Node.js中读取?

在Windows上设置Node.js环境变量并成功读取的完整指南

我明白你遇到的困扰——设置了process.env.SOME_KEY但读取时一直返回undefined,这在Windows上确实容易因为终端语法差异或者环境变量生效机制踩坑。下面分场景给你讲清楚正确的操作步骤:

一、临时设置(仅当前终端会话有效)

这种方式适合快速测试,关闭终端后变量就会消失:

  • CMD命令提示符:
    直接输入:

    set SOME_KEY=some value
    

    如果变量值包含空格,记得用双引号包裹:

    set SOME_KEY="some value with spaces"
    

    输入完直接在同一个窗口启动你的Node.js应用即可。

  • PowerShell:
    语法和CMD不一样,要这么写:

    $env:SOME_KEY = "some value"
    

    同样,值有空格的话用引号包裹,设置完在当前PowerShell窗口启动应用。

二、永久设置(所有终端/会话生效)

如果希望每次打开终端都能用到这个变量,就需要永久配置:

1. 图形界面操作(最直观)

  1. 右键点击「此电脑」→ 选择「属性」
  2. 点击「高级系统设置」→ 弹出「系统属性」窗口后切换到「高级」标签
  3. 点击「环境变量」,在「用户变量」(仅当前用户生效)或「系统变量」(所有用户生效)区域点击「新建」
  4. 变量名填SOME_KEY,变量值填some value,点击确定保存
  5. 关键:重启所有打开的终端窗口,或者注销再登录,新的环境变量才会生效

2. 命令行永久设置(适合喜欢敲命令的同学)

  • CMD(需要管理员权限):
    设置用户变量:

    setx SOME_KEY "some value"
    

    设置系统变量(加/m参数):

    setx /m SOME_KEY "some value"
    

    注意:setx设置后必须重启终端才能生效,它无法直接在当前窗口即时生效。

  • PowerShell(需要管理员权限):
    设置用户变量:

    [Environment]::SetEnvironmentVariable("SOME_KEY", "some value", "User")
    

    设置系统变量:

    [Environment]::SetEnvironmentVariable("SOME_KEY", "some value", "Machine")
    

    同样,设置完要重启终端或者注销登录才能生效。

三、Node.js中读取环境变量的正确姿势

在你的Node.js代码里,直接读取process.env.SOME_KEY就行,比如:

const someKeyValue = process.env.SOME_KEY;
console.log('读取到的SOME_KEY值:', someKeyValue);

⚠️ 重要提醒:如果是临时设置的变量,必须在设置变量的同一个终端窗口启动Node应用,新窗口不会继承临时变量;如果是永久设置的,一定要重启终端后再启动应用。

四、常见踩坑点排查

如果还是读取到undefined,可以检查这几点:

  • 是不是在错误的终端设置了变量?比如在CMD里设置,却在PowerShell里启动应用(临时变量不跨终端)
  • 永久设置后有没有重启终端?环境变量不会实时加载,必须重启终端或注销
  • 变量值有特殊字符/空格时有没有加引号?没加的话可能会被截断
  • 是不是先启动了Node应用再设置的变量?应用启动后不会实时读取新的环境变量,必须重启应用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:42:17