Javascript Node.js-如何在代码中设置环境变量
我是node.js的新手,有一个程序需要设置一个环境变量才能运行(使用这个库,我的bash命令是: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)进行设置,但没有任何文章告诉
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函数。然后,当我退出节点并再次运行它时,它将在环境中读回以供使用。结果证明这是不可能的,原因似乎很好。您可以阅读此答案