Узел.js-как задать переменные окружения в коде


Я довольно новичок в node.js, и есть программа, которую я должен установить переменную окружения для запуска (используя библиотеку noble, моя команда bash: sudo NOBLE_HCI_DEVICE_ID=x node program.js, чтобы сообщить моему коду, Какой адаптер Bluetooth - устройство HCI - использовать).

Причина этого заключается в том, что у меня есть несколько модулей, каждый из которых нуждается в своем собственном адаптере Bluetooth, и я хочу указать в своем коде, Какой адаптер должен использовать каждый модуль.

Я нашел много статей, рассказывающих мне, как потреблять переменные окружения в моем коде и установить их с помощью командной строки (process.ОКР.VARIABLE_NAME), но ничего не говорит мне, как установить их изнутри узла.JS.

Можно ли задать переменные окружения в моем узле.код js?

3 10

3 ответа:

Вы можете не только использовать переменные окружения в узле с process.env, но и устанавливать их. Это установит переменную в текущем узловом процессе и любых дочерних процессах, которые он вызывает,но не в самой вызывающей оболочке.

// 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' 

Выполните следующую команду в командной строке

export FOREVER_ROOT=/var/log/

Здесь экспорт задайте переменную окружения

Или

Выполните команду "/ etc / environment"в каждой оболочке, где требуется обновить переменные:

$ / etc / environment