为什么我不能在 Node.js 应用程序中对环境变量执行条件

发布于 2025-01-11 06:56:28 字数 528 浏览 0 评论 0原文

执行此 node.js 应用程序时

if(process.env.ENV_ARG === "someValue") {
    console.log("conditional works...");
} else {
    console.log(`ENV_ARG => ${process.env.ENV_ARG}`);
}

当我使用以下脚本

  "scripts": {
    "dev": "SET ENV_ARG=someValue && node index.js"
  },

...输出为:

ENV_ARG => someValue 

我无法理解为什么 if 语句的计算结果为 false。
process.env.ENV_ARG 的内容记录在 else 块中时,上面的 if 语句应该可以访问它们......至少我是这么认为......

提前致谢

When I execute this node.js application...

if(process.env.ENV_ARG === "someValue") {
    console.log("conditional works...");
} else {
    console.log(`ENV_ARG => ${process.env.ENV_ARG}`);
}

with the following script...

  "scripts": {
    "dev": "SET ENV_ARG=someValue && node index.js"
  },

the output is:

ENV_ARG => someValue 

I can't understand why the if statement evaluates to false.
When the contents of process.env.ENV_ARG are logged in the else-block, they should be accessible for the if statement above...at least I thought so...

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反差帅 2025-01-18 06:56:28

这是一个间距问题。环境变量末尾包含一个空格。

解决该问题的一种方法如下:

  "scripts": {
    "dev": "SET ENV_ARG=someValue&& node index.js"
  },

It's a matter of spacing. There is a space that gets included at the end of the environment variable.

One way to work around it is the following:

  "scripts": {
    "dev": "SET ENV_ARG=someValue&& node index.js"
  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文