Node.js - 如何在代码中设置环境变量

Ale*_*lex 17 javascript linux node.js bluetooth-lowenergy

我对node.js相当新,并且有一个程序,我必须设置一个环境变量才能运行(使用高级库,我的bash命令是:sudo NOBLE_HCI_DEVICE_ID=x node program.js,告诉我的代码哪个蓝牙适配器 - HCI设备 - 使用).

这背后的原因是我有许多模块,每个模块都需要自己的蓝牙适配器,我希望在我的代码中指定每个模块应该使用哪个适配器.

我发现很多文章告诉我如何在我的代码中使用环境变量并通过命令行(process.env.VARIABLE_NAME)设置它们,但没有告诉我如何在node.js中设置它们.

是否可以在我的node.js代码中设置环境变量?

小智 41

您不仅可以使用节点中的环境变量,process.env还可以设置它们.这将设置当前节点进程中的变量以及它调用的任何子进程,而不是调用shell本身.

// consume
var alreadySetEnvVarForDevice = process.env.NOBLE_HCI_DEVICE_ID

// set
process.env['NOBLE_HCI_DEVICE_ID'] = 1
Run Code Online (Sandbox Code Playgroud)

  • 事实证明这是不可能的,而且理由似乎很好。 (4认同)
  • 或者您可以这样做:`process.env.NOBLE_HCI_DEVICE_ID = 1` (3认同)
  • 我带着同样的问题来到这里,但这个答案对我来说还不够好。我需要使用节点来设置环境变量,这些变量(1)对节点之外的其他进程可见,并且(2)比节点进程寿命更长。 (2认同)
  • 我的需求和@Tom 一样。我想在 Node 中设置 env 作为 init 函数。然后当我退出node并再次运行它时,它将处于读回使用的环境中。 (2认同)