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

Javascript Node.js-如何在代码中设置环境变量,javascript,linux,node.js,bluetooth-lowenergy,Javascript,Linux,Node.js,Bluetooth Lowenergy,我是node.js的新手,有一个程序需要设置一个环境变量才能运行(使用这个库,我的bash命令是:sudo NOBLE\u HCI\u DEVICE\u ID=x node program.js,告诉我的代码要使用哪个蓝牙适配器-HCI DEVICE) 这背后的原因是我有许多模块,每个模块都需要自己的蓝牙适配器,我希望在代码中指定每个模块应该使用哪个适配器 我发现很多文章告诉我如何在代码中使用环境变量,并通过命令行(process.env.VARIABLE_NAME)进行设置,但没有任何文章告诉

我是node.js的新手,有一个程序需要设置一个环境变量才能运行(使用这个库,我的bash命令是:
sudo NOBLE\u HCI\u DEVICE\u ID=x node program.js
,告诉我的代码要使用哪个蓝牙适配器-HCI DEVICE)

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

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


可以在my node.js代码中设置环境变量吗?

在命令提示符下运行如下命令

export FOREVER_ROOT=/var/log/
这里设置一个环境变量

在要更新变量的每个shell中执行“/etc/environment”:


$/etc/environment

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

// consume
var alreadySetEnvVarForDevice = process.env.NOBLE_HCI_DEVICE_ID

// set
process.env['NOBLE_HCI_DEVICE_ID'] = 1

如果您使用的是express,则可以按如下方式设置变量:

var express = require('express');
var app = express();

// set the environment mode, default is process.env.NODE_ENV
app.set('env','development');

app.get('env');
// => 'development' 

或者你可以这样做:
process.env.NOBLE\u HCI\u DEVICE\u ID=1
我带着同样的问题来到这里,但这个答案对我来说不够好。我需要使用node来设置环境变量,这些变量(1)对node之外的其他进程可见,(2)比node进程更长。我的需求与@Tom相同。我想将节点内的env设置为init函数。然后,当我退出节点并再次运行它时,它将在环境中读回以供使用。结果证明这是不可能的,原因似乎很好。您可以阅读此答案