通过 VS Code 启动时设置 Node JS 的环境变量

问题描述 投票:0回答:1

我有 Node JS Azure 功能,当我在本地运行时,需要设置

NODE_TLS_REJECT_UNAUTHORIZED=0
环境变量才能使我的代码正常工作。这是因为我正在连接到在我的计算机上本地运行的模拟 Cosmos DB,这需要 Node 允许自签名证书。

我只希望在本地运行时使用此环境变量设置,因为在生产中我将使用真实的(即非模拟的)Cosmos DB 实例。我不想将 和

#if debug
放入我的代码(或 Node Azure 函数的等效项)中,我希望 VS Code 项目在启动时设置环境变量。

我尝试遵循此答案建议,但是当 VS Code 启动程序时,未设置环境变量,因为我的代码中出现有关自签名证书未授权的运行时错误。我的

launch.json
看起来像这样:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to Node Functions",
      "type": "node",
      "request": "attach",
      "port": 9229,
      "preLaunchTask": "func: ",
    },
  ],
  "environment": [{
    "name": "NODE_TLS_REJECT_UNAUTHORIZED",
    "value": "0"
    }],
  }

如果我使用

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0
直接在代码中设置环境变量,一切都很好。我不知道如何让 VS Code 来设置它,或者是否可能。

node.js visual-studio-code azure-functions
1个回答
2
投票

请更新

"environment": [{
  "name": "NODE_TLS_REJECT_UNAUTHORIZED",
  "value": "0"
  }],

成为

"env": {
  "name": "NODE_TLS_REJECT_UNAUTHORIZED",
  "value": "0"
  },

另请检查替代方案。

您可以更新 package.json 脚本以在启动时添加所有环境变量,例如

"runLocal": "NODE_TLS_REJECT_UNAUTHORIZED=0 ... your start code "
或者您可以使用名为 dotenv

的第三方库

这就是它的工作原理

01-创建.env文件

02-写入所有环境变量 key=val

NODE_TLS_REJECT_UNAUTHORIZED=0

03- 更新 package.json 脚本以添加

"runLocal": "NODE_ENV=dev ... your start code "

04- 检查节点

NODE_ENV
是否等于
dev
然后加载 dotenv

05- 在节点环境是本地的情况下导入模块并调用配置函数

require('dotenv').config()

© www.soinside.com 2019 - 2024. All rights reserved.